如何从工作目录中退出Mercurial变更集,而不将其提交到repo?

如何从工作目录中退出Mercurial变更集,而不将其提交到repo?,mercurial,mercurial-extension,Mercurial,Mercurial Extension,回退是通过应用与 要退出的更改集。该新变更集已提交给 并最终合并 我如何在不提交变更集的情况下退出?我只想在工作目录中恢复变更集。尝试hg backout--无提交版本 这将执行回退,但保留未限制的更改。假设您已经提交了一个新的更改集,但尚未推送它;假设您的历史如下所示: A--B--★ \ C A--B--C--★ 其中C是您希望删除的最近提交的变更集,但将其修改保留在工作文件夹中。及★ 是工作目录(不是实际的变更集本身) 实现这一点的方法不止一种。一种方法是: hg u

回退是通过应用与 要退出的更改集。该新变更集已提交给 并最终合并

我如何在不提交变更集的情况下退出?我只想在工作目录中恢复变更集。

尝试hg backout--无提交版本


这将执行回退,但保留未限制的更改。

假设您已经提交了一个新的更改集,但尚未推送它;假设您的历史如下所示:

A--B--★
    \
     C
A--B--C--★

其中C是您希望删除的最近提交的变更集,但将其修改保留在工作文件夹中。及★ 是工作目录(不是实际的变更集本身)

实现这一点的方法不止一种。一种方法是:

hg up B

这使您的历史记录如下所示:

A--B--★
    \
     C
那就做吧

hg还原-rc

实际上,它会将C中的任何更改复制到您的工作文件夹中

然后你可以做(可选)

hg带C

将C从历史中根除:

A--B--★

这种方法的一个优点是它完全删除了C,就像它从未存在过一样


(我提到使用
strip
在这个意义上是可选的:如果您确实保留了C,它几乎不会造成什么伤害。如果它被标记为机密,您永远不需要推送它。但我个人会通过剥离来清理它。)

可能的副本您是否已经提交了更改,或者,您的工作目录中是否有尚未提交的已修改文件?