如何更改git子模块跟踪远程分支?

我使用以下命令添加子模块

git submodule add -b br1 [repo]

.gitmodules文件具有entry branch = br1.现在我想将分支切换到br2.我可以进入submodule文件夹并切换分支,但不会更新.gitmodules文件.

我怎么能这样做?

最佳答案
Git使用.gitmodules来存储子模块项目的链接,但不是它的特定版本.因此,当您切换子模块的分支时,git .gitmodules文件不会更改.

相反,当您更改子模块时,git会更新子模块版本的提交编号.如果你看看你的上层模块

git diff

你会看到类似的东西

-Subproject commit 829b869657418fdac7964c3671ed9a378f09c032
+Subproject commit 829b869657418fdac7964c3671ed9a378f09c032-dirty

如果你希望每个人都使用新的子模块分支,你必须提交&将该更改(新的子模块提交编号)推送到您的上层模块仓库.

基本上它就像一个特定子模块版本的链接.

在这里查看详细信息:https://git-scm.com/book/en/v2/Git-Tools-Submodules#Starting-with-Submodules

点赞