使用"git 还原"和冲突。这是怎么回事?



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

L1
L2 L3

L4

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

每行的每个提交。

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

但是,是的,我确实有冲突,甚至做这样简单的事情。

这里发生了什么?

为什么我会遇到冲突?

谢谢。

我假设您尝试恢复不是最后一次的提交。

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

您有 4 个提交:

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

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

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

更新

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

您可以阅读有关 git-tower 中的合并和冲突的信息

最新更新