赞
踩
git submodule update --init
git pull origin master --recuresive-submodule
拉取子模块代码,子模块显示在临时分支上
$ git branch
* (HEAD detached at da3251f)
branch01
master
可以理解为submodule update拉取代码使用了checkout命令,而不关注具体是什么分支
git checkout xxx
因此在拉取子模块代码后,如果要进行开发,记得执行
$ git submodule foreach 'git checkout master'
批量切换到指定分支。
如果已经在临时分支上提交了代码, 执行下列命令进行批量合并
$ git submodule foreach 'git switch -c tmp'
$ git submodule foreach 'git switch master'
$ git submodule foreach 'git merge tmp'
$ git submodule foreach 'git branch -d tmp'
如果有子模块报错导致遍历停止,需要忽略子模块错误继续执行,在命令结尾添加
|| :
$ git submodule foreach 'git branch -d tmp || :'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。