我在使用git分支时遇到了一个问题。 在master分支中,我有一个包含标记v2.0的子模块。 我扩展到一个新的分支说修复,并对其人工制品进行了一些更改,并通过“git checkout v3.0”将子模块更新到v3.0。我做了一个提交。 现在我换回主人,用“git checkout master”。它显示消息“M submodule”,表示子模块配置已更改并显示新的更改。子模块也已在主分支中自行更改为v3.0。
为什么会这样。为什么我不能在不自动更改子模块版本的情况下在分支之间切换?
答案 0 :(得分:3)
修复分支有子模块v3.0;主分支有子模块v2.0。切换回主分支后,子模块保持为v3.0,因此'git status'显示子模块更改。当您切换分支时,您需要执行'git子模块更新' - 这将使子模块返回到v2.0(主版本)。