Git还原导致合并冲突

时间:2015-06-08 15:49:41

标签: git revert

我创建了一个虚拟txt文件,并在每次提交时输入了一个新行 如:

//dummy.txt
first commit
second commit
third commit

现在我想通过恢复第二次提交来摆脱第二行。但是,我在这个简单的实验中收到合并冲突。有人可以解释一下原因吗?

1 个答案:

答案 0 :(得分:5)

您的示例实际上并不像您想象的那么简单,因为您的更改都是连续的。主要问题是third commit引入的差异实际上取决于second commit中所做的更改。 Git存储每个提交的完整树,但仍然需要能够根据先前的提交将提交表达为diff(不知道这对你是否有意义)。

如果您尝试相同的操作但通过执行3次提交修改同一文件的不同部分,则第二次提交的恢复不会失败。由于默认的上下文差异是3,如果您的编辑彼此间隔超过3行,则不应该失败。