我正在尝试研究如何在mercurial中使用Branch-per-feature方法但是创建了一个分支来工作,并将其合并回默认值,我无法将我的更改推回到我的主存储库。什么是最好的办法?
我创建了一个分支“Gauge customization”,在该分支中做了一些工作,然后将其合并回默认值。默认情况下进行了一些更改,现在我想将其提交回主存储库。但是当我尝试时,我得到了:
abort:push创建新的远程分支:Gauge定制!
提示:使用'hg push --new-branch'创建新的远程分支
我不认为分支会出现在主仓库中,并且通过在本地合并它我可以以某种方式在分支机构(或可能的分支机构)中工作,然后当我测试所有内容时,将其推送到主机回购。
Gauge定制分支是否仍然显示?真的,我以为我只会在这个阶段看到默认值?但是我不能正确理解这些工具吗?我应该创建远程分支吗? 理想情况下,我希望能够为每个功能打开一个分支,并且在任何时候都有3或4个这样的分支运行(这是我公司的工作方式)所以我现在想要掌握一些事情。
答案 0 :(得分:5)
从技术上讲,您可以使用--new-branch
将新分支提交到主仓库。如截图所示,从拓扑视图中看不到具有头部的新分支,但是从命名空间视图,即当hg
中止推送时,它只是希望您明确确认添加新分支(名称)到远程仓库。
但是,对于像您这样的任务 - 临时功能分支 - 更常见的工作流程是不使用命名分支,而是使用匿名/书签分支或单独克隆。命名分支通常用于长期存在的分支,如 stable , legacy 等。如果您创建匿名/已添加书签的分支并在其功能完成时将其合并,则hg
在推送时不会抱怨。
在此背景下经常推荐的阅读是A Guide to Branching in Mercurial。
答案 1 :(得分:4)
合并两个分支并没有摆脱它们中的任何一个。您需要通过切换到它并执行以下操作来手动关闭功能分支:
hg commit --close-branch -m 'Closing branch'