子模块 - 1684838553/webTips GitHub Wiki
在一个Git仓库中添加其它Git仓库的场景。
添加子模块
1.使用 git submodule add 进行添加子模块,执行命令后,添加一个.gitmodules文件。
cd MainProject/
git submodule add https://github.com/xxx/test.git
.gitmodules文件:保存项目 URL 与已经拉取的本地目录之间的映射,有多个子模块则含有多条记录,会随着版本控制一起被拉去和推送的。
直接执行git pull,默认不会将子模块的代码一起拉下来
2.初始化并更新子模块
git submodule update --init --recursive
3.更新子模块
git submodule update --recursive
4.拉取子模块远程代码
git submodule update --remote
删除子模块
在日常开发区中,也有删除子模块的需求。以test项目为例:
1.使用 git rm --cached test 将 test 从版本控制中删除(本地仍保留有),若不需要可不带 --cached 进行完全删除
2.打开.gitmodules文件,删除对应的内容
[submodule "test"]
path = test
url = https://github.com/xxx/liba.git
3.打开.git/config文件,删除对应的内容
[submodule "test"]
active = true
url = https://github.com/xxx/test.git
4.使用 rm -rf .git/modules/test , 删除.git下的缓存模块,最后提交项目
克隆含子模块的仓库
若需要克隆含有子模块的仓库,直接进行克隆是无法拉取之模块的代码,可加上 --recursive 参数,如下:
git clone --recursive https://github.com/xxx/MainProject.git
或者使用下面的三部操作:
git clone https://github.com/xxx/MainProject.git
git submodule init
git submodule update