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_Branching And Merging - Fatal编程技术网

Mercurial合并/删除要素分支

Mercurial合并/删除要素分支,mercurial,branching-and-merging,Mercurial,Branching And Merging,我正试图解决如何在mercurial中使用“按功能分支”方法,但创建了一个要使用的分支,并将其合并回默认值,因此无法将更改推回到主存储库。最好做什么 我创建了一个分支“Gauge Customization”,在该分支中做了一些工作,然后将其合并回默认值。在默认情况下进行了一些更改,现在我想将其提交回我的主存储库。但当我尝试时,我得到: 中止:推送创建新的远程分支:仪表自定义 提示:使用“hg push--new branch”创建新的远程分支 我不认为分支会出现在主回购协议中,通过在本地合并

我正试图解决如何在mercurial中使用“按功能分支”方法,但创建了一个要使用的分支,并将其合并回默认值,因此无法将更改推回到主存储库。最好做什么

我创建了一个分支“Gauge Customization”,在该分支中做了一些工作,然后将其合并回默认值。在默认情况下进行了一些更改,现在我想将其提交回我的主存储库。但当我尝试时,我得到:

中止:推送创建新的远程分支:仪表自定义
提示:使用“hg push--new branch”创建新的远程分支

我不认为分支会出现在主回购协议中,通过在本地合并它,我可以在分支(或潜在分支)中工作,然后当我测试完所有内容后,将其推到主回购协议

仪表定制分支是否仍应出现?我真的以为我只会在这个阶段看到违约?但是,是我没有正确理解这些工具吗?我应该创建远程分支吗?
理想情况下,我希望能够为每个功能打开一个分支,并在任何时候运行3或4个这样的分支(这是我的公司的工作方式),因此我希望现在就牢牢掌握情况。

合并两个分支并不能摆脱它们中的任何一个。您需要通过切换到功能分支并执行以下操作手动关闭功能分支:

hg commit --close-branch -m 'Closing branch'

从技术上讲,您可以使用
--new branch
将新分支提交给主回购。如您的屏幕截图所示,实际上没有拓扑视图中的新分支,而是名称空间视图中的新分支,即当
hg
中止推送时,它只希望您明确确认向远程repo添加新分支(名称)

但是,对于诸如临时功能分支之类的任务,更常见的工作流是不使用命名分支,而是使用匿名/书签分支或单独的克隆。命名分支通常用于长期存在的分支,如stable、legacy等。如果您创建一个匿名/书签分支,并在其功能完成时将其合并回,
hg
在推送时不会抱怨


在这种情况下,一个经常被推荐的阅读方法是。

我尝试运行该命令,更新工作台以显示一个水平条,而不是正常的圆形图标(对于分支),但我仍然无法提交主repo。返回的消息如上所述:push创建新的远程分支…然后我将问以下问题(因为您的问题中没有明确说明):您以前是否将功能分支推送到外部存储库?因为如果没有,远程回购完全可以将您识别为创建新分支。然后,您应该按照建议执行操作,并向其添加
--new branch
参数,将(现在可能已关闭)分支推送到远程repostory。不,我没有尝试将功能分支推送到主repo。我使用它的目的是创建一个空间,在其中试验每个特性[链接]分支的概念,并将开发工作的那部分从默认分支中分离出来,这样,如果结果证明这是浪费时间,我就可以放弃它,或者在我满意的时候将它合并回默认分支。再进一步说,我希望能够独立地同时处理多个功能分支,只需使用--new branch将关闭的分支推送到服务器。分支名称将让您稍后看到变更集来自何处。我担心的是,我不想用我在本地创建的任何分支来污染主回购,我听说使用“按功能分支”方法隔离可能需要单独集成的离散工作单元是一种“良好实践”。如何做到这一点,我完全愿意接受这方面的想法。我理解了临时特性分支(这正是我在这里的目标)和长期分支之间的区别分支指南看起来像我接下来需要阅读的内容。在您的示例中,书签临时特性分支方法可以这样使用:1)将rev 44书签为main(或master,…),2)将rev 44书签为gauge,3)进行并提交gauge更改,4)更新到main,5)将gauge合并到main。但是,就个人而言,我更喜欢在必要时工作、提交、书签和分支。在您的示例中,这将导致根本没有分支,因为主线和功能工作是按顺序进行的。在阅读链接的博客文章后,你应该选择你喜欢的方式。这正是正确的答案——不要在每个功能中使用命名分支,除非你希望它们永久记录在历史记录中。阅读“Mercurial分支指南”后,请阅读以下内容: