目录
[1.采用git submodule命令]
[2.修改第三方库,直接提交其中文件内容到自己项目中]
1.采用git submodule命令
1)添加submodule
为当前工程添加submodule,命令如下:
git submodule add 仓库地址 路径
其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径。
注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone)
示例:
git submodule add -f git@github.com:spf13/viper.git ./vendor/github.com
-f 是强制的意思,一般不需要加 。
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。
git submodule status //子模块状态
git submodule update //更新子模块
2)删除submodule
submodule删除:
- 首先要在“.gitmodules”文件中删除相应配置信息。
- 然后执行“git rm –cached ”命令将子模块所在的文件从git中删除。
3)下载工程带有的submodule
当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
git submodule update –init –recursive
即可将子模块内容下载下来后工程才不会缺少相应的文件。
2.修改第三方库,直接提交其中文件内容到自己项目中
在某些情景下,无法通过链接公网获取对应github资源时,需要使用该方案。例如某arm产品中需要添加第三方git资源,但无法链接外网,只能链接内网中自有第三方资源。
在提交第三方库资源之前,一定要删除或修改该第三方项目中的.git目录。建议将其改名,使第三方.git其无法生效,再git add ,commit等,并最终push推送到自己项目库中。
如果已经提交第三方资源库,但远端实际没有其真实文件内容,则必须删除本项目中引入的第三方资源库路径。然后再重新拷贝该第三方资源库到当前项目中,在此之前一定要删除该第三方项目中.git目录,再重新git add /commit/push等操作,即可将第三方库所有文件引入自有项目中。