Mercurial:修复一个borked历史

Aus*_*yde 6 mercurial

所以最近在一个项目上工作(由我自己 - 没有其他开发人员),我以某种方式设法严重地将历史记录与克隆的存储库中的一些(显然)坏的合并.

我想做的 - 需要做的 - 只需删除最后8次提交即可解决此问题(根据hg glog)

是的,我在borking开始之后对代码进行了一些更改,但是,这里或那里只进行了一些调整 - 没有什么我无法从内存中修复.

我怎样才能摆脱最后的8次提交并从我搞砸的地方重新开始?

Chr*_*cht 11

复制存储库 - 执行此操作时,可以指定应克隆的最后一个提交.

因此,如果您的存储库有100个变更集并且您想要将变更集93删除到100,那么只需执行以下操作:

hg clone -r 92 BadRepository CleanRepository
Run Code Online (Sandbox Code Playgroud)

- > CleanRepository只包含1到92的变更集.

如果您使用TortoiseHG,您可以在克隆对话框中执行相同操作(有一个文本框"克隆到修订版:")

  • 这个答案不包括一般情况,如果源仓库中有一些分支,你最终会得到一个部分仓库. (3认同)