以下示例: 父项目为box-server,子项目为box-deploy
添加submodule
cd box-server
git submodule add box-deploy-repository-url deploy
git ci -m 'add submodule deploy'
clone含有submodule的项目
- 方法一(推荐)
git clone --recursive box-server-repository-url
- 方法二
git clone box-server-repository-url
git submodule init
git submodule update
- 方法三
git clone box-server-repository-url
git submodule update --init --recursive
检出子项目最新代码
方法一
git submodule update --remote
(默认检出master分支)设置子模块跟踪仓库其它分支
git config -f .gitmodules submodule.deploy.branch developer
方法二
cd deploy
git fetch
git merge origin/master
方法三
git submodule update --remote --merge
(检出并合并)
其它
git pull --recurse-submodules
git submodule foreach git checkout master
git submodule foreach git pull
git submodule update --init --recursive
删除submodule
$ git submodule deinit -f -- deploy
$ rm -rf .git/modules/deploy
$ git rm -f deploy
或$ git rm --cached deploy
$ git commit -m "remove deploy submodule"
修改submodule url
修改.gitmodules
文件对应submodule的url,然后执行$ git submodule sync
。