在 mercurial 中是否有使用 git revert 的简单等价物?显然hg revert
是要签出某个文件,我还没有找到关于如何添加提交(git cherry-pick
)或应用提交的反向差异()的明确答案git revert
。
我想撤销一些对默认分支的提交,这些提交被推出了一段时间,而不是撤销之前或之后的提交——所以 hg backout 或 hg revert 似乎不是正确的命令。
在 mercurial 中是否有使用 git revert 的简单等价物?显然hg revert
是要签出某个文件,我还没有找到关于如何添加提交(git cherry-pick
)或应用提交的反向差异()的明确答案git revert
。
我想撤销一些对默认分支的提交,这些提交被推出了一段时间,而不是撤销之前或之后的提交——所以 hg backout 或 hg revert 似乎不是正确的命令。
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
),您将不得不手动提交它。
顺便说一句hg revert
,将检查一个或多个处于另一个变更集中状态的文件(默认情况下,您的工作目录上次更新到的变更集)。这包括索引状态,例如,如果在您当前的变更集中没有跟踪文件,它将恢复为添加状态。
根据http://www.wikivs.com/wiki/Git_vs_Mercurial等价物分别是hg graft
和hg backout
。
为什么你认为退出不是你想要的?它基本上对旧提交进行了反向补丁(但在大多数情况下不会自动提交)。