49

我正在尝试了解 Mercurial,希望我只是在这里感到困惑!

我有一个我已经克隆('clone')的存储库('main'),都在我自己的机器上。两者完全同步。

我决定使用命名分支,所以下次我在“克隆”上提交时,我在分支名称“case1212”下进行了操作,虽然它似乎已经正确处理了我的克隆上的提交,但我无法将这些更改推回到“主要”。给出的错误是:

abort: push creates new remote branch 'case1212'!

...这表明我可能需要先合并?我应该在那个“克隆”存储库上合并什么?当我尝试从“主要”中提取时,没有任何变化。

我很确定我实际上希望它在我的“主”存储库中创建一个远程分支,以便从它更新的人可以看到该分支。

4

3 回答 3

50

Mercurial 的默认行为会阻止您创建远程分支。如果你想这样做,你需要强制推动。

您显示的窗口中的同步菜单,有一个强制推送选项。

于 2010-03-02T18:14:21.353 回答
24

Tortoise 现在有一个Push new branch可能比Force pull or push. 命令行工具有一个标志 --new-branch。

更新:新的乌龟界面使其更难找到。切换到同步视图,然后单击选项并选择允许推送新分支。

于 2011-01-12T22:22:41.840 回答
19

它警告您,您的推送将创建新的远程头(在本例中为分支)。如果您对此感到满意,并且听起来不错,则可以使用push -f.

此检查在那里,因此如果您希望 case1212 分支不返回主服务器,您可以执行此操作hg push -r default,然后您将不会看到此警告并且不会发送 case1212。

为 case1212 完成此操作后,您将不会再看到警告,因为 case1212 已经存在。

新版本的 mercurial 使警告在新头是新分支的情况下听起来不那么可怕。

于 2010-03-02T18:12:55.233 回答