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

标签 git merge branch git-submodules

这是我遇到的情况。 我有一个包含子模块的 repo 协议(protocol)。在 repo 中,我创建了一个新分支来进行一些编辑。

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

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

我想知道 git 是否 merge 了子模块引用?谁能帮帮我?

最佳答案

在你的分支中, pull 子模块 'xxx' 后,你需要返回父仓库(在包含你的子模块的文件夹中)并执行:

git add xxx
git commit -m "Updated submodule"

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

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

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

关于git - 切换分支时git是否更改子模块引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17792336/

相关文章:

git fetch origin 不获取所有分支

来自远程标签的 Git 分支

python - Pandas 通过数据框的 2 列将一个系列映射到另一个系列

linux - 在 bash 中将一个文件 append 到另一个文件的中间

git - 恢复 git merge ,同时允许稍后进行相同的 merge )

version-control - Clearcase View 和分支解释

git - 如何停止跟踪git中目录的内容?

Git LFS 删除早于提交的文件

Gitignore 排除所有子目录中的某些文件

git - 使用 Git,如何在所有分支中搜索字符串?