不正确的git rebase -i --onto <branch>的父级上的<branch>

时间:2019-01-16 14:29:53

标签: git rebase

我在后来克隆和编辑的项目之间使用git rebase时观察到一种奇怪的行为。

我使用git rebase将更改从模板项目应用于克隆项目。大多数时候,我没有任何问题,如果遇到冲突,我可以手动解决。但是最近我发现,即使没有冲突,在极少数情况下,rebase已被应用到HEAD分支的父级中,我希望应用rebase。

我的主分支如下:

* 5a42f4b (master) commit 3 - successful rebased from template
* d9ef9ba (tag: online, backup/master) commit 2 - imported into template
* 11acd0e commit 1
...

并且我的模板中有一个远程跟踪分支:

* b2f423e (HEAD, template/master) commit 6
* 2152143 commit 5
* 0535e9a commit 4
* 68e1fd2 commit 3
* b7416ef commit 2 - rebased from edited clone
...

我现在想将提交5重置为master并使用

git rebase -i --onto master 0535e9a 2152143

我手动解决冲突并获取新树:

* ba002d4 (HEAD) commit 5 - rebased from template
* d9ef9ba (tag: online, backup/master) commit 2 - imported into template
* 11acd0e commit 1
...

但这不是我想要的,所以我再次调整了基数:

git rebase -i --onto master d9ef9ba ba002d4

这次我什至没有冲突,因为已经解决的冲突是由于更早的提交,并且得到:

* ca7d80b (HEAD) commit 5 - successful rebased from template
* 5a42f4b (master) commit 3 - successful rebased from template
* d9ef9ba (tag: online, backup/master) commit 2 - imported into template
* 11acd0e commit 1
...

所以至少我达到了我的目标,但是我真的找不到解释为什么第一次重新部署没有按预期进行。 有提示吗?

0 个答案:

没有答案