撤消使用 --no-ff 完成的合并

blo*_*ngs 5 git merge undo

我听说使用 --no-ff 标志完成的git merge 会保留完整的历史记录,从而更容易提取特定的 merge。不过,我还没有看到它解释了如何撤消使用 --no-ff 进行的合并。另外,我看不出如何比快进合并更容易取消合并。有人可以对此有所了解,或者向我指出一些关于此的好信息吗?

谢谢。

Eug*_*rov 4

您可以恢复快进合并(--no-ff)所做的所有提交:

git revert SHA_OF_MERGE_COMMIT0944694980cc3d -m 1 
Run Code Online (Sandbox Code Playgroud)

这里最重要的是一个键 -m 1

-m 父编号

--主线父号码

通常您无法恢复合并,因为您不知道合并的哪一侧应被视为主线。该选项指定主线的父编号(从 1 开始),并允许 revert 反转相对于指定父级的更改。

恢复合并提交声明您永远不会希望合并带来的树更改。因此,以后的合并只会引入由不是先前恢复的合并的祖先的提交引入的树更改。这可能是也可能不是您想要的。

有关更多详细信息,请参阅恢复错误合并操作方法