Mercurial中的分支和远程磁头

hek*_*ran 20 mercurial branch

我使用以下命令创建了一个新分支:hg branch new_branch

在第一次提交到新分支后,默认分支变为非活动状态.如果这被推送,则中央存储库将只有一个属于新分支的头.

当我的同事在默认分支上推送他的提交时,他将收到此错误:

hg branch new_branch
Run Code Online (Sandbox Code Playgroud)

强行推动有什么不好吗?为什么遥控头坏了?

您如何在不同的分支机构上远程工作并推送到一个存储库?

Lau*_*lst 18

远程头是坏的,因为你基本上是在努力合并到另一个人身上.此消息是为了防止人们意外地引入远程头,告诉他们在推送之前先合并.

在这种情况下,您已经创建了一个命名分支,这意味着您有意引入并共享一个新头,并且您可以将该警告作为信息丢弃.使用hg push --new-branch迫使它(或-f1.6之前的版本).

  • 他们正在添加一个--new-branch选项,您将来可以使用它作为--force的更安全的替代方案.还应该改进提交错误消息. (2认同)
  • @barraponto:`--new-branch`仅在命名新分支的第一次提交时才有帮助。如果您有两个默认分支的标头,然后将其中一个命名为分支,则此方法无效。在这种情况下,您仍然必须使用`-f` (2认同)