使用 'git revert' 和冲突。那是怎么发生的?

Working with 'git revert', and conflicts. How that happens?

我正在写一个文本文件,它的名字是 "f2.txt"。 我为文件的每一行做了一次提交。 其内容为:

l1
l2
l3
l4

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

每一行的每次提交。

所以我试图恢复提交。我有冲突。 即使我认为这样做我也不会遇到任何冲突,因为它是每一行的提交。 (不在同一行)

但是,是的,我确实有冲突,即使是做那样简单的事情。

这里发生了什么?

为什么我会遇到冲突?

谢谢。

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

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

您有 4 个提交:

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

现在您尝试还原第 3 次提交。 Git 不确定要做什么,它可以看到之前的 l2,但它期待文件结尾,而你有 l4。

显然比那要复杂一点。 patch 命令足够智能,可以检测移动的线等,但基本上就是这样。

更新

除了手动解决冲突,我真的看不到任何解决方案。

您可以在 git-tower

中阅读有关合并和冲突的信息