回退通过应用与 变更集将被撤消。新的变更集致力于 存储库,并最终合并。
https://www.mercurial-scm.org/wiki/Backout
如何在不提交变更集的情况下退出?我只想将变更集还原到工作目录中。
答案 0 :(得分:2)
尝试hg退出-不提交REV
这将执行撤消,但更改未提交。
答案 1 :(得分: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保留在原位,则几乎不会造成伤害。而且,如果它被标记为机密,则无需将其推入。但是我个人而言会通过剥离进行清理。)