如何在工作目录中退出Mercurial变更集而不将其提交到仓库?

问题描述 投票:1回答:2

回退通过应用与要撤消的变更集相反的变更集来工作。新的变更集将提交到存储库,并最终合并。

https://www.mercurial-scm.org/wiki/Backout

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

mercurial mercurial-extension
2个回答
2
投票

尝试hg backout --no-commit REV

这将执行备份,但保留未提交的更改。


1
投票

假设你已经提交了一个新的变更集但尚未推出它;假设您的历史记录如下:

A--B--C--★

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

有不止一种方法可以做到这一点。一种方法是以下......

hg up B

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

A--B--★
    \
     C

然后做

hg revert -r C

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

然后你可以做(​​可选)

hg strip C

从历史中消除C:

A--B--★

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

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

© www.soinside.com 2019 - 2024. All rights reserved.