Version control &引用;推送创建新的远程磁头“;问题

Version control &引用;推送创建新的远程磁头“;问题,version-control,mercurial,tortoisehg,Version Control,Mercurial,Tortoisehg,我读了这么多关于这个问题的问题,但我仍然无法解决它 我在用乌龟。我在一个分支上工作,现在我想把它合并回主分支。我提取了在两个分支中所做的所有更改,更新到主分支,并合并(并提交)。但是,当我尝试推送所有这些时,仍然会收到“abort:push创建新的远程磁头”消息 我还尝试使用--close branch选项关闭分支(如SO中的一个问题所建议的) 我唯一没有尝试的就是“强迫”推。 有什么建议吗?还是武力推动是唯一的选择 我刚刚尝试了一个类似的设置,得到了相同的警告。显然,尽管你试图推动的第二个头部

我读了这么多关于这个问题的问题,但我仍然无法解决它

我在用乌龟。我在一个分支上工作,现在我想把它合并回主分支。我提取了在两个分支中所做的所有更改,更新到主分支,并合并(并提交)。但是,当我尝试推送所有这些时,仍然会收到“abort:push创建新的远程磁头”消息

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

我唯一没有尝试的就是“强迫”推。 有什么建议吗?还是武力推动是唯一的选择


我刚刚尝试了一个类似的设置,得到了相同的警告。显然,尽管你试图推动的第二个头部是闭合的,但在推动过程中它被视为另一个头部。而且,关闭两个头部似乎也不容易推动


您可以强制推送,这应该是可以的,但是如果您在
可视化
分支上保留多个头部,您最终可能会遇到相同的问题,就像您在变更集14和20中已经遇到的那样。为了一劳永逸地解决这个问题,我建议合并两个变更集(14和20)并重新关闭最后的头部

谢谢你的回答,我确实学到了一些新技巧

最后,我做的是从远程存储库克隆一个早期版本,也就是说,一个没有所有合并提交的存储库。然后,我拉取更改集,合并并提交。然后推动终于成功了


这基本上与我以前尝试过的步骤相同,但显然在第一次(不成功的)试验中,我将其分解为比需要的步骤更多的步骤,并且在某个时候出现了一些问题

只适用于遇到此问题的所有其他人。 对我来说,造成这个问题的是默认分支上的一些本地修订,在我开始处理新分支之前,我没有推动这些修订

我已将我为默认分支提取的最新修订版与我的新分支合并,但这会使您对默认分支的本地更改处于提交状态,但未推送状态

如果您尝试推送它们,创建远程标头的不是您的新分支,而是默认分支的未推送修订创建远程标头

当我用hg strip-r 1234删除这些修订时

hg push --new-branch 
一切都很完美

让我走上正轨的是

hg heads
在中,我有两个头部都有默认分支的名称,并且版本号不同。

尝试此解决方案

假设。您有足够的权限关闭和创建远程分支

这是因为你试图重写历史。只需尝试
hg push-f
,它将在远程回购中创建两个头部,而您可能不会


因此,第一次登录到您的远程服务器并关闭分支,现在来到您的本地并使用
hg push-f
进行推送。必要的新分支将自动创建,原始条件与以前一样

合并14和20,这就是我在21日所做的,它仍然给出了相同的信息。不,你没有。21是
default
中的
可视化
的合并,而不是
可视化
中的
可视化
。当我指的是合并14和20时,它不适用于14和变更集20的后代……好吧,因此将
可视化的两个头合并到
默认值中仍然会在该分支中留下两个头。现在有道理了。。。谢谢。是的,hg不让你推到一个分支,当它唯一的远程头被关闭时,这是难以置信的愚蠢…可能重复感谢你的“它是未推到默认分支的转速创建远程头”!!对我来说,修复方法是a)在TortoiseHg Workbench中打开目标存储库(在本地文件共享上),b)更新到最新版本,c)从我的本地存储库中提取比服务器版本更新的1个版本,d)关闭服务器repo,最后从本地存储库推送所有更改。我可以判断,hg strip不再存在。新的命令是什么?