" push创建新的远程头部"问题

时间:2014-08-02 20:21:45

标签: version-control mercurial tortoisehg

我阅读了有关此问题的所有SO问题,但仍然无法解决。

我正在使用TortoiseHg。我在一个分支机构工作,现在我想把它合并回主分支。我撤消了在两个分支中进行的所有更改,更新到主分支,并合并(并提交)。但是当我试图推动所有这些时,我得到了" abort:push创建了新的远程头部"信息。

我还尝试使用--close-branch选项关闭分支(正如在SO中的一个问题中所建议的那样)。

我唯一没有尝试过的是强迫'推。 有什么建议?或者是推力唯一的选择?

See screenshot

4 个答案:

答案 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进行推送。将使用原始条件自动创建必要的新分支。