切换分支时git是否会更改子模块引用

时间:2013-07-22 16:07:42

标签: git merge branch git-submodules

这是我面临的情况。 我有一个包含子模块的repo。在repo中,我创建了一个新分支来进行一些编辑。

然后我发现我需要一个更新的子模块,所以我拉下了子模块并继续工作。 之后我做了一个提交,并将分支合并回主分支。

在master分支中,当我使用“git submodule update”时,子模块指向旧版本,但不指向分支中更新的版本:(

我想知道git是否合并了子模块引用?任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

在您的分支中,在拉出子模块“xxx”之后,您需要返回父级仓库(在包含子模块的文件夹中)并执行以下操作:

git add xxx
git commit -m "Updated submodule"

这将记录更新的special entry of the index,记住子模块“xxx”的新SHA1。

这是您将分支合并回master时需要更新的特殊条目。

如果您忘记了分支中的git add/git commit步骤,则合并回master将保持特殊条目不变,仍然引用旧的SHA1。