我使用下面的命令如何更改git子模块跟踪远程分支?
git的子模块添加-b BR1 [回购]
的.gitmodules文件条目分支= BR1添加的子模块。现在我想将分支切换到br2。我可以进入子模块文件夹并切换分支,但不会更新.gitmodules文件。
我该怎么做?
我使用下面的命令如何更改git子模块跟踪远程分支?
git的子模块添加-b BR1 [回购]
的.gitmodules文件条目分支= BR1添加的子模块。现在我想将分支切换到br2。我可以进入子模块文件夹并切换分支,但不会更新.gitmodules文件。
我该怎么做?
Git使用.gitmodules存储指向子模块项目的链接,但不是它的特定版本。所以当你切换子模块的分支时,git .gitmodules文件不会改变。
改为子模块时,git updates会提交子模块版本号。如果你看看你的上部模块
git diff
,你会看到类似
-Subproject commit 829b869657418fdac7964c3671ed9a378f09c032
+Subproject commit 829b869657418fdac7964c3671ed9a378f09c032-dirty
如果你希望每个人都使用新的子模块的分支,你必须承诺&推动这种变化(新的子模块提交数)进入你的上层模块回购。
基本上它就像一个链接到特定的子模块版本。
查看详情:https://git-scm.com/book/en/v2/Git-Tools-Submodules#Starting-with-Submodules
为什么要这样做?如果你仔细想想,如果你改变子模块正在跟踪的分支,那么是否可能抛弃其他人的代码呢?子模块是一个非常棘手的Git区域。您的问题可能有解决方法。 –
我正在一个稳定的分支br1上工作,并且想要在实验br2上进行测试。如果我不更新.gitmodules文件,其他用户将无法看到它。 – Rohit