我以前(即之前的几个变更集)提交了一个相当大的变更集,其中包含我想保留的好更改和一些我想撤消的更改。是的,无论如何我都不应该在一个变更集中打包这么多,但现在损害已经造成。
AFAIK,Mercurial 的退出命令只能在整个变更集上工作。我当然可以通过几个步骤弄清楚如何手动执行此操作,但我想知道:是否有一种简单的方法可以只反转部分变更集?
(如果重要的话,我想撤消的更改是文件删除。)
我以前(即之前的几个变更集)提交了一个相当大的变更集,其中包含我想保留的好更改和一些我想撤消的更改。是的,无论如何我都不应该在一个变更集中打包这么多,但现在损害已经造成。
AFAIK,Mercurial 的退出命令只能在整个变更集上工作。我当然可以通过几个步骤弄清楚如何手动执行此操作,但我想知道:是否有一种简单的方法可以只反转部分变更集?
(如果重要的话,我想撤消的更改是文件删除。)
我应该在发布之前尝试过,但这对其他人也可能有用:
退出不会自动提交。所以对我有用的方法是运行 hg backout,然后简单地恢复我不想被改回来的文件。
根据条件(两种情况下“必须回退”和“必须保留”或文件模式的数量),您可以使用hg backout
-I (包括掩码)或 -X (排除掩码)选项
hg backout -r CSET -I FILE
仅对FILE进行回退更改hg backout -r CSET -X FILE
撤消除FILE之外的所有更改如果要撤消文件删除,那么最好使用hg revert
而不是hg backout
:
hg status --change CSET --removed -n0 | xargs -0 hg revert --rev CSET^1