如何在mercurial中止合并?

def*_*ode 80 version-control merge mercurial dvcs undo

我搞砸了合并.我想恢复然后再试一次.
有没有办法在提交之前恢复合并?

hg revert没有做我想做的事情,它只会恢复文件的文本.Mercurial中止了我合并的第二次尝试并抱怨原始合并仍未提交.

有没有办法在hg merge命令之后但在提交之前撤消合并?

Omn*_*ous 102

hg update -C <one of the two merge changesets>

  • 另一种方法是`hg update --clean .` (47认同)
  • @Omnifarious,清理`.`应该在启动合并之前清除你所做的任何修改.因此,如果您在r42,尝试与r43合并,失败,清理,您将回到原始的r42. (3认同)
  • `hg update --clean`有效,因为`.`似乎是默认的 - 它是[未明确记录](http://www.selenic.com/mercurial/hg.1.html#update). (2认同)

Mar*_*ler 39

在此之后hg merge,但在此之前hg commit,你的工作副本有两个家长:第一父是你已经更新到之前合并并且第二亲是你与合并变更的变更.hg merge只要你的工作副本有两个父母,Mercurial就不会让你再做.

您有两种方法可以继续:

  1. 如果你想中止合并并回到你开始的地方,那就去做吧

    hg update -C .
    
    Run Code Online (Sandbox Code Playgroud)

    这将更新工作副本以匹配第一个父级:.always始终表示工作副本的第一个父级.

  2. 如果你想重新合并一些文件,那么就做

    hg resolve fileA fileB
    
    Run Code Online (Sandbox Code Playgroud)

    这将像您一样重新启动合并工具hg merge.如果您在hg merge时间发现合并工具配置不当,则resolve命令很好:修复配置并运行hg resolve --all.您可以根据需要运行hg resolve多次,直到您对合并感到满意为止.