【发布时间】:2011-08-20 06:47:50
【问题描述】:
我有一个 HG 存储库,版本为 1、2、3、4、5 和 6。
当我提交第 4 版时,我不知不觉地在第 3 版中搞砸了一些我不应该做的更改。直到第 6 版已经提交,我才注意到这一点。
我需要撤消第 4 版中的更改,然后重新应用所有其他更改。基本上撤消提交#4。我该怎么做?
【问题讨论】:
标签: mercurial tortoisehg
我有一个 HG 存储库,版本为 1、2、3、4、5 和 6。
当我提交第 4 版时,我不知不觉地在第 3 版中搞砸了一些我不应该做的更改。直到第 6 版已经提交,我才注意到这一点。
我需要撤消第 4 版中的更改,然后重新应用所有其他更改。基本上撤消提交#4。我该怎么做?
【问题讨论】:
标签: mercurial tortoisehg
你想要hg backout
恢复/撤销之前changeset的效果...
回退通过应用与要回退的变更集相反的变更集来工作。新的变更集提交给repository,并最终合并...
【讨论】:
hg backout -r 4 将反转修订版 4 中所做的更改,而不会触及修订版 5 和 6 中所做的更改。帮助系统提供了一个很好的概述 (selenic.com/hg/help/backout)。
您可以使用 MQ 扩展:
hg qinit
hg qimport -r 4:tip
hg qpop -a
hg qdelete 4.diff
hg qpush -a
hg qfinish -a
以上是你改写历史的方式,这是你想要的我相信的。
您也可以使用hg backout,但这会撤消工作目录中的提交,您可以提交。
【讨论】: