对于Hg,是否有相当于git Revert / cherry-pick?

时间:2014-01-02 04:35:02

标签: git mercurial git-revert

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

我想要将一些提交转换为默认分支,这些提交被推出一段时间,而不是在之前或之后反转 - 所以hg退出,或者hg revert似乎不是正确的命令。

2 个答案:

答案 0 :(得分:4)

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

等同于git cherry-pick的是hg graft

相当于git revert确实是hg backout - 你似乎误解了它在某种程度上的作用。 hg backout将创建一个新的变更集,以反转单个先前变更集中的更改。由于您刚才谈到变更集,hg backout会将更改合并到您的工作目录中(首先执行hg update -C),您必须手动提交。

BTW hg revert将检出处于另一个变更集状态的一个或多个文件(默认情况下,工作目录的变更集最后更新为)。这包括索引状态,例如如果未在当前变更集中跟踪该文件,则会在添加的状态中恢复该文件。

答案 1 :(得分:1)

http://www.wikivs.com/wiki/Git_vs_Mercurial个等价物分别为hg grafthg backout

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