使用'git revert',并产生冲突。怎么发生的?

时间:2018-10-01 17:53:39

标签: git git-revert

我正在编写一个文本文件,名称为“ f2.txt”。 我对文件的每一行都进行了提交。 其内容为:

l1
l2
l3
l4

换句话说,它有四个提交。

每行的每次提交。

所以我试图还原一个提交。我有冲突。 甚至我以为那样做,我也不会遇到任何冲突,因为这是每一行的一次提交。 (不是同一行)

但是,是的,即使这样做很简单,我也会发生冲突。

这里会发生什么?

为什么会出现冲突?

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您已尝试还原不是最后一次的提交。

上下文更改时会发生冲突。

您有4次提交:

  • 添加l1-将新行添加到空文件
  • 添加l2-在l1之后和文件结尾之前
  • 添加l3-在l2之后并在文件结尾之前
  • 添加l4-在l3之后并在文件结尾之前

现在,您尝试还原第三次提交。 Git不确定该怎么做,它可以看到之前的l2,但是它期望文件结尾,而您只有l4。

显然,这要复杂得多。 patch命令足够聪明,可以检测到移动的线等,但是基本上就是这样。

更新

除了手动解决冲突外,我没有其他解决方案。

您可以在git-tower

中了解有关合并和冲突的信息