子模块的使用

参考git子模块

在一个git项目中添加子模块:

git submodule add git@mine.gitlab.com:test/test-webserver.git

克隆时将子项目也一并克隆:

git clone --recurse-submodules git@mine.gitlab.com:test/test.git

设置子模块的分支:

git config -f .gitmodules submodule.test-webserver.branch master

设置在执行git status时一并显示子模块的信息:

git config --global status.submodulesummary 1

拉取所有子模块的上游更改,也可以在命令最后追加一个子模块的名字指定更新某个子模块:

git submodule update --remote

在推送时需要把子模块的更新也一并推送。

协助者拉取更新:

git pull
git submodule update --init --recursive

有时候虽然父项目使用的是 http 协议,但是子模块配置的还是 git 协议,这样子模块就无法同步了,此时需要更改.gitmodules文件,然后清除配置缓存:

git submodule deinit --all -f

然后再更新子模块:

git submodule update --init --recursive