Git Rebase 并未对整个分支进行 rebase

Git Rebase is not rebasing the entire branch

出于某种原因,运行宁 git rebase 突然没有变基我的整个分支,我无法想象为什么。我在变基之前有以下内容:



我在 运行ning git rebase develop 之后得到的是:

请注意,none 来自分支的提交出现在变基中。在这一点上,我必须 运行 在现在是无头分支的最后一次提交上 git reset --hard 以使事情恢复正常。

奇怪的是,如果我在 feature-relationalSurveys 分支上创建超出屏幕截图中所示内容的额外提交,然后变基,则所有额外提交都将出现在变基中。就像 git 不知道分支实际从哪里开始一样。我以前从未见过这种情况,我不知道是什么原因造成的,也不知道如何解决。有什么想法吗?

我将根据提供的信息进行猜测。要么 A) 您的可视化工具坏了,要么 B) develop 已经包含了 feature-relationalSurveys 的所有内容。您可以通过尝试其他可视化工具(如 git log --decorate --graph)来测试 A。

让我解释一下 B。关键信息是...

  • feature-relationalSurveys 处于合并点,rebase 不应合并。
  • feature-relationalSurveysdevelop 处于同一点。
    • 更奇怪的是,和origin/develop在同一点。
  • None feature-relationalSurveys 中的提交在 rebase 之后处于顶端。
    • 我认为这些提交的历史更深。

我认为发生这种情况的唯一方法是,如果你有这样的事情......

2 [develop]
|
1
|  A' [feature-relationalSurveys]
A  |
|  B'
B  |
|  C'
C /
|/
D

我不太确定你是如何进入那个状态的,也许是通过一个奇怪的合并或变基,但你去吧。当 Git 将 feature-relationalSurveys 变基到 develop 时,它注意到 C' 的内容与 C 相同,因此它会跳过它。 B'的内容和B一样,所以略过。 A'A一样,略过。没有剩下不同的内容,所以它只是在 develop 所在的位置 feature-relationalSurveys

2 [develop] [feature-relationalSurveys]
|
1
|
A
|
B
|
C
|
D

None 的 feature-relationalSurveys 变化在 develop 的末尾可见,因为它们被埋没在 develop 的历史中。

这是我最好的猜测,只有您可以验证。这将有助于在变基之前显示 develop 的状态。