提交我与转速1,2,3,4,5和HG存储库6HG:撤消历史
当我犯了第4版,我在不知不觉中拙劣一些REV3变化,我不应该有。直到第6版已经付诸实施,我没有注意到这一点。
我需要撤消第4版中的更改,但之后重新应用所有其他更改。基本上取消提交#4。我怎样才能做到这一点?
提交我与转速1,2,3,4,5和HG存储库6HG:撤消历史
当我犯了第4版,我在不知不觉中拙劣一些REV3变化,我不应该有。直到第6版已经付诸实施,我没有注意到这一点。
我需要撤消第4版中的更改,但之后重新应用所有其他更改。基本上取消提交#4。我怎样才能做到这一点?
还原/撤销先前changeset的效果......
回退的工作原理是将一个变更是这样的变更的相反备份出来。这种新的变更致力于repository,并最终合并...
您可以使用MQ扩展:
hg qinit
hg qimport -r 4:tip
hg qpop -a
hg qdelete 4.diff
hg qpush -a
hg qfinish -a
以上是你如何改写历史,这是你想要什么,我相信。
你也可以使用hg backout
,但是在你的工作目录中取消了一个提交,你可以提交。
这就是我要做的*当且仅当*我知道上次从我的存储库中更改集与其他任何人共享的变更集3或更早版本时。否则,当您在变更集4,5和6中引入相同更改的新版本时,您会有一个令人讨厌的小混合头痛。 – 2011-05-06 19:13:59
这是给定的。重写历史记录始终是最后的手段,尤其是当你分享它时。 – manojlds 2011-05-06 19:17:18
尽管我使用退出,但如何重新应用由于回滚而分别被倒置的变更集5和6?那是我感到困惑的部分。有小费吗? – 2011-05-06 15:28:01
backout会在5,6之后创建一个新的变更集,它实际上是4的倒数。您不需要重新申请5和6 – 2011-05-06 15:30:24
'hg backout -r 4'将颠倒修订版4中所做的更改,而不会触及修订版5和6中所做的更改。帮助系统提供了一个很好的概述(http://www.selenic.com/hg/help/backout)。 – 2011-05-06 15:30:53