我阅读了有关此问题的所有SO问题,但仍然无法解决。
我正在使用TortoiseHg。我在一个分支机构工作,现在我想把它合并回主分支。我撤消了在两个分支中进行的所有更改,更新到主分支,并合并(并提交)。但是当我试图推动所有这些时,我得到了" abort:push创建了新的远程头部"信息。
我还尝试使用--close-branch
选项关闭分支(正如在SO中的一个问题中所建议的那样)。
我唯一没有尝试过的是强迫'推。 有什么建议?或者是推力唯一的选择?
答案 0 :(得分:8)
只针对遇到此问题的其他人。 导致这个问题的原因是默认分支上的一些本地修订,在我开始处理新分支之前我没有推动。
我已将我为默认分支提取的最新版本与我的新分支合并,但这会将您的本地更改留给默认分支承诺但没有推动。
如果您尝试推送它们,那么创建远程头部的新分支并不是新分支,它是创建远程头部的默认分支的未推送修订。
当我用hg strip -r 1234
删除那些修订版时hg push --new-branch
完美无缺。
让我走上正轨的是
hg heads
显示我有两个头,两个头都有默认分支的名称,具有不同的修订号。
答案 1 :(得分:7)
我刚刚尝试了类似的设置,我得到了相同的警告。显然,虽然你试图推动的第二个头是关闭的,但它在推动期间被视为另一个头。关闭两个头似乎也不是 pushable 。
你可以强制推送,它应该没问题,但如果你在visualization
分支上保留多个头,你可能最终会遇到同样的问题,就像你已经拥有变更集14和20一样。解决问题一劳永逸,我建议合并两个变更集(14和20)并重新关闭最终的头部。
答案 2 :(得分:1)
感谢您的回答,我确实学到了一些新的技巧。
我最终做的是从远程存储库克隆早期版本,即没有我合并的所有提交的存储库等。然后我撤回了更改 - 设置,合并和提交。然后推动终于成功了。
这基本上与我之前尝试过的步骤基本相同,但显然在第一次(不成功)试验中我将其分解为比需要更多的步骤,并且在某些时候出现了问题。
答案 3 :(得分:0)
试试这个解决方案,
<强>设想。您有足够的权限关闭并在远程
中创建分支这是因为您正在尝试重写历史记录。只需尝试hg push -f
,它将在远程仓库中创建两个头,您可能不会
因此,首次登录您的遥控器并关闭分支,现在来到您的本地并使用hg push -f
进行推送。将使用原始条件自动创建必要的新分支。