2

在 mercurial 中是否有使用 git revert 的简单等价物?显然hg revert是要签出某个文件,我还没有找到关于如何添加提交(git cherry-pick)或应用提交的反向差异()的明确答案git revert

我想撤销一些对默认分支的提交,这些提交被推出了一段时间,而不是撤销之前或之后的提交——所以 hg backout 或 hg revert 似乎不是正确的命令。

4

2 回答 2

4

Git-Hg Rosetta Stone通常是一个很好的资源,但它不能处理您正在寻找的案例。正如 torek 所说,http://www.wikivs.com/wiki/Git_vs_Mercurial是另一种资源。

的等价物git cherry-pickhg graft

相当于git revert确实是hg backout- 看来您在某种程度上误解了它的作用。hg backout将创建一个新的变更集,该变更集反转单个先前变更集中的更改。由于您谈论的是前一段时间的变更集,hg backout因此会将更改合并到您的工作目录中(先做一个hg update -C),您将不得不手动提交它。

顺便说一句hg revert,将检查一个或多个处于另一个变更集中状态的文件(默认情况下,您的工作目录上次更新到的变更集)。这包括索引状态,例如,如果在您当前的变更集中没有跟踪文件,它将恢复为添加状态。

于 2014-01-02T05:26:18.597 回答
1

根据http://www.wikivs.com/wiki/Git_vs_Mercurial等价物分别是hg grafthg backout

为什么你认为退出不是你想要的?它基本上对旧提交进行了反向补丁(但在大多数情况下不会自动提交)。

于 2014-01-02T05:25:18.450 回答