由于某种原因,运行git rebase
突然没有改变我的整个分支,我无法想象为什么。在rebase之前我所拥有的是以下内容:
运行git rebase develop
后我拥有的是:
请注意,rebase中没有任何来自分支的提交。在这一点上,我必须在最后一次提交时运行一个git reset --hard
,现在是一个无头分支,以便按顺序恢复。
奇怪的是,如果我在feature-relationalSurveys
分支上创建超出屏幕截图中显示的额外提交然后重新设置,则所有其他提交都将在rebase中出现。这就像git不知道分支实际开始的位置。我以前从未见过这种情况,我不知道是什么导致它或如何解决它。有什么想法吗?
答案 0 :(得分:2)
我将根据提供的信息进行猜测。 A)您的可视化工具已损坏或B)develop
已包含feature-relationalSurveys
的所有内容。您可以通过尝试其他可视化工具(如git log --decorate --graph
)来测试A.
Lemme explain B.关键信息是......
feature-relationalSurveys
处于合并点,rebase不应合并。feature-relationalSurveys
与develop
处于同一点。
origin/develop
处于同一点。feature-relationalSurveys
中的任何提交都没有在rebase之后的提示。
我能想到这件事的唯一方法就是如果你有这样的事情......
2 [develop]
|
1
| A' [feature-relationalSurveys]
A |
| B'
B |
| C'
C /
|/
D
我不确定你是如何进入那种状态的,可能是通过一种奇怪的合并或改变,但你去了。当Git进行rebase feature-relationalSurveys
开发时,通知C'
的内容与C
相同,因此它会跳过它。 B'
的内容与B
相同,因此会跳过它。 A'
和A
相同,跳过。没有任何不同的内容,所以它只会feature-relationalSurveys
develop
。{/ p>
2 [develop] [feature-relationalSurveys]
|
1
|
A
|
B
|
C
|
D
在feature-relationalSurveys
的提示处无法看到develop
次更改,因为它们已在develop
的历史记录中被隐藏。
这是我最好的猜测,只有你可以验证。在rebase之前显示develop
的状态会有所帮助。