我在后来克隆和编辑的项目之间使用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
...
所以至少我达到了我的目标,但是我真的找不到解释为什么第一次重新部署没有按预期进行。 有提示吗?