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

Mercurial 如何将变更集从远程删除的分支移动到另一个分支?,mercurial,Mercurial,所以有人删除了一个远程分支,但是当他删除该分支时,一个变更集丢失了 我在本地存储库中有变更集,并尝试将变更集合并到默认分支,然后按下,但出现错误“中止:按下在分支“rc”上创建新的远程磁头650367cd0ff4!”根据您的情况,几乎没有选项: 如果整个分支被剥离,并且您在本地拥有该分支,则您可以再次推送它: hg push --new-branch 建议这样做,因为Mercurial会在每次推送时将本地提交发送到远程回购(直到您在本地剥离这些提交)。然后,您可以使用--close branc

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


我在本地存储库中有变更集,并尝试将变更集合并到默认分支,然后按下,但出现错误“中止:按下在分支“rc”上创建新的远程磁头650367cd0ff4!”

根据您的情况,几乎没有选项:

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

    hg push --new-branch
    
    建议这样做,因为Mercurial会在每次推送时将本地提交发送到远程回购(直到您在本地剥离这些提交)。然后,您可以使用
    --close branch
    (这将在repo中保留所有提交,但只将分支标记为closed/unused)关闭不需要的分支

  • 将所需提交从某个分支本地移植到另一个分支:

    hg graft -r 123
    hg push
    
  • 创建新的远程磁头(“中止:推送在“rc”分支上创建新的远程磁头650367cd0ff4!”)。这没什么错,只是意味着您的一个分支将有两个独立的top提交。这些提交可以稍后合并在一起

    hg push -f
    

  • 你说的分支删除是什么意思?此分支的所有提交都已被剥离,或者分支已通过
    --close branch
    或其他方式关闭?我不知道他做了什么,但我没有访问权限,删除是故意的。该方法是否改变了我的问题的解决方案,即从远程上不再存在的本地分支中选择变更集,到同时存在于这两个分支中的新分支?删除的分支是否命名为“rc”?哈哈,我想我可以只选择hg push-f谢谢你的帮助!
    hg push -f