使用 '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
中阅读有关合并和冲突的信息
我正在写一个文本文件,它的名字是 "f2.txt"。 我为文件的每一行做了一次提交。 其内容为:
l1
l2
l3
l4
换句话说,它有四次提交。
每一行的每次提交。
所以我试图恢复提交。我有冲突。 即使我认为这样做我也不会遇到任何冲突,因为它是每一行的提交。 (不在同一行)
但是,是的,我确实有冲突,即使是做那样简单的事情。
这里发生了什么?
为什么我会遇到冲突?
谢谢。
我假设您已尝试还原不是最后一次的提交。
上下文改变时会发生冲突。
您有 4 个提交:
- 添加 l1 - 新行到空文件
- 添加 l2 - 在 l1 之后和文件结尾之前
- 添加 l3 - 在 l2 之后和文件结尾之前
- 添加 l4 - 在 l3 之后和文件结尾之前
现在您尝试还原第 3 次提交。 Git 不确定要做什么,它可以看到之前的 l2,但它期待文件结尾,而你有 l4。
显然比那要复杂一点。 patch 命令足够智能,可以检测移动的线等,但基本上就是这样。
更新
除了手动解决冲突,我真的看不到任何解决方案。
您可以在 git-tower
中阅读有关合并和冲突的信息