Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mercurial中创建一个新分支:;中止:推送创建新的远程磁头“;_Mercurial_Branch_Dvcs - Fatal编程技术网

在mercurial中创建一个新分支:;中止:推送创建新的远程磁头“;

在mercurial中创建一个新分支:;中止:推送创建新的远程磁头“;,mercurial,branch,dvcs,Mercurial,Branch,Dvcs,我正在尝试做一些非常简单的事情:创建一个新分支。但我搞砸了。我在哪里犯的错误,我该如何纠正 我是Mercurial的唯一用户。我提交了修订版54并将其推送到远程存储库。我想基于修订版53创建一个分支,所以我将本地副本更新为修订版53,进行了更改并提交(忽略关于“不是头部”的警告)。然后,当我试图推送到远程存储库时,它说 abort: push creates new remote head 也许我需要告诉Mercurial我想创建一个新分支?如果是,如何以及在什么时候 谢谢 你告诉Mercur

我正在尝试做一些非常简单的事情:创建一个新分支。但我搞砸了。我在哪里犯的错误,我该如何纠正

我是Mercurial的唯一用户。我提交了修订版54并将其推送到远程存储库。我想基于修订版53创建一个分支,所以我将本地副本更新为修订版53,进行了更改并提交(忽略关于“不是头部”的警告)。然后,当我试图推送到远程存储库时,它说

abort: push creates new remote head
也许我需要告诉Mercurial我想创建一个新分支?如果是,如何以及在什么时候


谢谢

你告诉Mercurial它可以继续

$ hg push --force
由于通常不鼓励使用多个(未命名)头部,因此需要强制使用。问题是克隆存储库的人不知道使用哪一个。但既然你是唯一的用户,你就可以继续推进

另一种方法是使用(带有
hg分支
)然后使用

$ hg push --new-branch
允许在远程服务器上创建新分支。它们的优点是易于区分这两个分支。它们的缺点是它们是永久性的。永久性意味着您不能从分支上的变更集中删除分支名称-该名称直接烘焙到变更集中


提供一种获得非永久分支名称的方法,请参阅hg帮助书签

我这样做了。使用乌龟。。。我就是这样修复的:

在“设置”中,我启用了条带扩展,然后右键单击我不想要的分支“修改的历史记录-条带”。如果你推过,那么它需要从所有其他存储库中剥离,包括拉过你不想要的分支的同事


另一种方法是将不需要的分支合并到您的主分支中,但不要接受该分支的任何更改-我不确定该机制如何工作。

此错误的另一个原因是:您的默认分支中可能有一些未合并的更改来自中央回购

hg up default
hg merge
hg ci -m "Merge"
hg pus

虽然我现在是唯一的开发人员,但我希望保持良好的实践,因此如果命名分支更好,我宁愿使用它们。永久分支机构有什么不好?我的意思是,最终我可以合并它们,它们将再次成为一个,对吗?还有,有没有一种方法可以追溯告诉Mercurial,现有的修订版(我最初没有命名新分支)实际上是一个单独的分支?是的,你肯定可以将两个头部合并回一个头部-无论是否使用命名的分支。我已经更新了一点关于永久性对命名分支意味着什么的答案。@max:您可能应该使用书签来标记您的两个头部。书签现在是一个标准功能,可以在存储库之间推拉。我们使用Sourcetree来实现这一点,知道如何在没有命令行的情况下强制吗?这本质上是一个复制,但要求相反。