Git子模块和rebase

时间:2013-05-22 17:19:13

标签: git git-submodules

使用git 1.8.1。我有git项目的上游和本地repo。它有一个子模块(哈希A)。然后我将其分支到本地分支“功能”(并具有哈希A子模块)。

  1. 拉出一些更改并将新哈希(B)子模块化到主分支中。
  2. 然后我将我的功能(带子模块散列A)与主分支(带子模块散列B)重新绑定
  3. 当我从分支“feature”切换到分支“master”时,我看到子模块散列不受影响,仍然是B代表master,A代表功能。所以我每次都需要手动更新它。

    如何在不创建新提交的情况下将“功能”分支更新为新的子模块哈希(B)?

1 个答案:

答案 0 :(得分:1)

所以你想要将整个子模块从 linux-kernel 更改为 emacs 并让git没有注意到它,并且好像什么都没有改变一样?

这可能不是因为每次提交都会自己注册提交时所有子模块的提交(哈希),并且您可以安全地假设每个git存储库中的每次提交都是一个独特的哈希。所以git会抱怨它是否找不到它在任何子模块中寻找的提交(例如在 feature 分支的HEAD中的散列B中),以防子模块被更改并且你运行git submodule update --init --recursive

我建议您首先在将子模块编织到工作流程之前仔细研究和了解子模块。