3

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

  1. 将一些更改和子模块新哈希 (B) 拉入主分支。
  2. 然后我将我的功能(带有子模块哈希 A)针对主分支(带有子模块哈希 B)

当我从分支“功能”切换到分支“主”时,我看到子模块哈希不受影响,仍然是 B 代表主,A 代表功能。所以我每次都需要手动更新。

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

4

1 回答 1

-3

因此,您想将整个子模块从linux-kernel更改为emacs并且让 git 没有注意到它并表现得好像什么都没有改变?

这是不可能的,因为每次提交都会向自己注册提交时所有子模块所在的提交(哈希),并且您可以安全地假设每个 git 存储库中的每个提交都具有唯一的哈希。因此,如果 git 没有在其任何子模块中找到它正在寻找的提交(比如在功能分支的 HEAD 的哈希 B 中),git 会抱怨,以防子模块被更改并且您运行git submodule update --init --recursive.

我建议您首先彻底研究和了解子模块,然后再将其编织到您的工作流程中。

于 2013-05-22T20:21:19.803 回答