我想在 git 中重写一个提交,所以我做了一个 git rebase -i 00112233
或类似的东西,我得到了 merge 冲突,而没有对将应用的提交进行任何更改。我输入 merge 命令, pop 编辑器,我接受其中的内容,但出现 merge 冲突。
我对git rebase -i
的理解是HEAD
设置为00112233
然后00112233
之后的commit >(它们已经一致,因为它们已被应用到当前状态)按照编辑器中指定的顺序应用(在这种情况下我没有改变)。我无法弄清楚该过程将如何导致 merge 冲突。
发生这种情况的方式有哪些?
最佳答案
如果所讨论的历史不是线性的,您可能必须重新应用您在第一次 merge 时采用的冲突解决方案。举个例子,如果历史是:
C:\Temp\TestRepo>git log --graph --oneline
* 3fc0537 Merge branch 'branch'
|\
| * 79e29f9 branch
* | 0de3658 master
|/
* edead94 Initial revision
merge 提交 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
rebase 将产生 merge 冲突。
关于git - 当我没有做任何更改时,git interactive rebase 中怎么会有冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617406/