假设我的 git 存储库中有 2 个子模块,一个用于跟踪,另一个不跟踪:
git submodule add https://rep1/repo1.git
git submodule add -b master https://rep2/repo2.git
现在,我如何更新我的 git 存储库以正确获取所有代码?如果我使用这个命令:
git submodule update
如果我使用此命令,我将不会获得用于跟踪 git 子模块的远程更改:
git submodule update --remote
它会弄乱非跟踪哈希值。我可以像这样正确更新它:
git submodule update --remote -- ./repo2
但是指定所有跟踪子模块的名称将是一件非常痛苦的事情。有什么建议可以正确更新所有跟踪和非跟踪而不手动指定每个跟踪和非跟踪吗?
我会创建一个本地别名来更新所有非跟踪子模块
#alias for non-tracking submodules
git config --local alias.update-non-track-sub 'submodule update --remote -- ./non-track-repo1 ./non-track-repo2 ... ./non-track-repoN'
和第二个本地别名来更新所有跟踪子模块
#alias for non-tracking submodules
git config --local alias.update-non-track-sub 'submodule update --remote -- ./track-repo1 ./track-repo2 ... ./track-repoN'