如何将变更集从远程删除的分支移动到另一个分支?

时间:2013-12-20 21:53:47

标签: mercurial

所以有人删除了一个远程分支,但删除分支时丢失了变更集。

我在本地存储库上有变更集,并尝试将变更集合并到我的默认分支,然后我推了,但是我得到了一个错误“abort:push在分支'rc'上创建新的远程头650367cd0ff4!”

1 个答案:

答案 0 :(得分:1)

根据您的具体情况,选项很少:

  1. 如果整个分支被剥离并且您在本地拥有该分支,那么您可以再次推送它:

    hg push --new-branch
    

    这是推荐的,因为Mercurial无论如何都会在你每次进行推送时将你的本地提交发送到远程仓库(直到你在本地剥离这些提交)。然后,您可以使用--close-branch 关闭不需要的分支(这会将所有提交保留在repo中,但只需将分支标记为已关闭/未使用)。

    hg ci --close-branch
    
  2. 将所需的提交从某个分支机构本地移植到其他分支:

    hg graft -r 123
    hg push
    
  3. 创建新的远程头(“abort:push在分支'rc'上创建新的远程头650367cd0ff4!”)。这没什么不对,它只是意味着你的一个分支将有两个单独的顶级提交。这些提交可以在以后合并。

    hg push -f