在您的示例中无需创建第二个头,也不应强制创建它。
您的工作流程的优点是您可以停止功能工作test
以对主分支进行更紧急的更改,如下所示:
> hg bookmark main
> hg bookmark test # Start work on feature test
... do some code ...
> hg commit -m "Working on feature test"
> hg update main # Stop working on test, start working on main
... do an urgent fix ...
> hg commit -m "Urgent fix"
> hg update test # Back to work on feature test
... do some more code ...
> hg update main # Finished the work so back to main
> hg merge test # Merge the work into main
> hg commit -m "Merge in feature test"
完成后,您将完成新功能并将其合并回主开发分支。
main
如果您在完成功能处理后未对分支进行任何更改,test
那么您无法合并更改,因为您无法将变更集合并到祖先中,因此您需要将main
书签移动到test
书签如下:
> hg update test
> hg bookmark main -f
(我相信这被称为快进合并,如果你愿意,你可以强制合并,但据我所知git
没有等价物)mercurial