合并提交的git revert中-m2的有效用例是什么?

时间:2016-02-04 20:17:39

标签: git

通常,如果我将合并移动到主线分支并推送它,那么go-to命令是:

$ git revert -m1 <merge commit SHA1>

但是,我知道revert也可以与-m2一起使用。但是,这对我来说没有意义。如果在第一个父级上发生了恢复,我无法将其对主线分支的作用可视化。这是否基本上使第一个父级现在看起来像第二个父级,减去合并提交本身所做的任何更改?这实际上对树有什么作用?是否有一组有效的用例用于此类恢复,指的是第二个父级?

第二个父级将始终是合并的功能/主题分支,因此我无法想象您希望将主线恢复到该状态。

1 个答案:

答案 0 :(得分:1)

最常见的用例是有人通常在git pull上进行合并。当您执行需要合并的pull时, local 提交是第一个父提交,远程提交是第二个提交。所以让我们说开发人员已经暂停了一段时间,所以他的本地分支是origin后面的20次提交。开发人员进行单一提交,拉动,以某种方式破坏合并,并推动。如果我们恢复与-m1的混淆合并,我们将失去所有20个提交的更改,并且必须挑选所有这些。通过使用-m2,我们只是从他的单一提交中丢失了更改,然后如果我们愿意,可以选择它。