git submodule 使用注意事项
1.主仓库以子模块形式引入各个maven子库,git追踪的是子模块的commit id,所以任何子模块的修改经提交并推送到子模块远端仓库后,还需要sdk主仓库也提交修改并推送到远端,不然团队其他成员将无法拉去子模块的最新修改;
2.sdk主仓库每次在执行git pull操作后,最好执行git status查看子模块状态,子模块状态变更时需要执行git submodule update,确保子模块拉去到更新;
3.git submodule update后子模块会处于游离的HEAD state,若需要修改子模块,需先切换到目标分支再做操作;
4.若在游离的HEAD state修改了代码且提交了(假设commit id为af312fa),则需要先创建临时分支(此时临时分支的最新修改指向af312fa),之后再切换到目标分支,在目标分支合并临时分支修改即可。
5.批量处理submodule时,如果想要报错不中断,可以执行如下命令:git submodule foreach ‘git命令 || true’