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