使用 git revert 时如何解决此冲突?

问题描述

我正在尝试恢复到较旧的提交,但是当我这样做时,我遇到了合并冲突。为什么会发生这种情况?

我使用的命令:

git revert <commit id>

解决方法

大多数 update-the-index-and/or-worktree 命令都是某种合并,将您想要的更改与您拥有的更改合并,这两个集合都是从某个基础计算出来的。不是合并的更新通常(我目前想不出例外)称为“硬”或“强制”。

基本版本(以及计算出的更改)取决于您在做什么。对于还原,您想要的更改是将提交 [ted 快照] 还原回其父级的更改,因此基础是还原提交,您想要撤消其与父级差异的更改,更改因此,您拥有就是该基础、您要还原的基础和您当前的结帐之间的差异。

Git 拒绝自动合并的规则是~重叠或邻接变化大块~。这条规则已经过实战测试:放松它,你会得到大量明显糟糕的合并,收紧它,你拒绝大量基本上总是好的合并。

问题是,我认为您将合并冲突视为坏事。他们不是。 Git 告诉你你想要应用的更改,那些将提交还原到其父版本的更改,重叠或邻接你已经在工作副本中应用的更改(通常就在历史中的某个地方,因为你正在还原那个提交),它会问你结果应该是什么样子:~你想应用这个更改,并且你已经应用了另一个后续更改,如果我只是把结果放在一起,历史表明结果不会是任何人想要的所以检查出来,修复它,并添加正确的结果~。