手术删除 mercurial 中的提交

Surgically removing commits in mercurial

我不小心将多个大数据文件(下例中的提交 3 和 4)提交到我在 Mercurial 中的默认分支,并在没有注意到的情况下在顶部添加了提交。我想通过外科手术删除这些提交。幸运的是,这些提交中没有涉及任何代码,因此似乎可以轻松删除它们。我不能使用 Strip 因为它也会删除所有子提交。我怎样才能删除它们?

例如,我想在下面的屏幕截图中完全删除修订版 3 和 4。如果有帮助,您可以找到示例 repository here

  1. 将最后两个变更集变基到 另一个 位置,删除不需要的变更集,return 想要回到 DAG
  2. "wanted and unwanted files in old changeset" 的一般案例:安装 evolve 扩展,uncommit files