当我没有做出任何改变时,如何在git交互式rebase中发生冲突?

时间:2014-02-07 01:02:26

标签: git

我想在git中重新提交一个提交,所以我做了一个git rebase -i 00112233或类似的东西,我得到了合并冲突,而没有对将要应用的提交进行任何更改。我输入合并命令,编辑器弹出,我接受那里有什么,并且存在合并冲突。

我对git rebase -i的理解是HEAD设置为00112233,然后提交00112233之后的提交(由于它们已被应用于当前状态)按照编辑器中指定的顺序应用(在本例中我没有更改)。我无法弄清楚这个过程将如何导致合并冲突。

这种情况会发生什么?

1 个答案:

答案 0 :(得分:4)

如果相关历史记录不是线性的,您可能需要重新应用首次合并时使用的冲突解决方案。如果历史如此,那就是iilustrate:

C:\Temp\TestRepo>git log --graph  --oneline
*   3fc0537 Merge branch 'branch'
|\
| * 79e29f9 branch
* | 0de3658 master
|/
* edead94 Initial revision

合并提交3fc0537包含冲突:

C:\Temp\TestRepo>git log -1
commit 3fc053701a53a30a01469f560ad5057eab74d126
Merge: 0de3658 79e29f9
Author: Edward Thomson <ethomson@edwardthomson.com>
Date:   Thu Feb 6 17:55:59 2014 -0800

    Merge branch 'branch'

    Conflicts:
        file.txt

然后退出edead94将产生合并冲突。