sim*_*mon 54 merge mercurial branch push
我有一个Hg仓库,里面有3个分支,但其中有两个是非活动的(因为我已将它们合并到我的默认分支中).hg头显示3个头,每个分支一个,即使hg分支显示其中2个分支为"非活动".
当我尝试将我的默认分支(使用hg push --branch default http:// ...)推送到另一个repo时,合并将中止,并显示消息"abort:push创建新的远程分支:!"
从Hg推送手册页,"默认情况下,推送将不允许在目的地创建新的头,因为多个头将使得不清楚使用哪个头.在这种情况下,建议在推动之前拉动和合并."
我已经做到了,但是我仍然无法推动 - 分支默认,而不会中止.
任何帮助表示赞赏.谢谢!
Ry4*_*ase 59
如果更改default集在其他分支上具有祖先更改集,则还必须推送这些更改集.如果变更集不存在其所有变更集,则变更集不可能存在.
所以尝试:
hg push --branch default --new-branch
Run Code Online (Sandbox Code Playgroud)
其中说"是的,我知道这个推送发送了远程仓库以前没有见过的分支名称"(它还需要Mercurial 1.6或更高版本的IIRC)>
此外,您可以使用这些非活动头部并使它们成为封闭头部:
hg update thebranch
hg commit --close-branch -m 'closing'
Run Code Online (Sandbox Code Playgroud)
因为"命名分支是永远的",许多人选择为长期存在的概念保留它们,如"稳定"和"实验",并使用书签,匿名分支或克隆功能,发布和其他短暂的东西.有关其他选项的指南,请参阅此处.
Rem*_*ein 33
要推送单个分支,只需使用-b
hg push -b myBranch
Run Code Online (Sandbox Code Playgroud)
至于具体问题,您可能希望查看结束分支.我知道SourceTree提供它,但我不确定具体细节