Mercurial能否合并非';没有头吗?
基本上,我有一个dev分支,我喜欢做的是在实现某些东西的同时创建一个特性分支,然后将其合并回来。因此,出现如下情况Mercurial能否合并非';没有头吗?,mercurial,merge,branch,Mercurial,Merge,Branch,基本上,我有一个dev分支,我喜欢做的是在实现某些东西的同时创建一个特性分支,然后将其合并回来。因此,出现如下情况 a b c d - dev / e f - feature 既然dev不是一个head,那么仍然可以将dev提升到feature,使dev和feature都指向f吗 我很确定git可以很好地做到这一点,但似乎无法说服Mercurial也这么做……hg中的命名分支(与git不同)没有“指向”任何地方。分支名称不是特定版本的可移动别名。每个提交都有一个元数据标记,用于命名提
a
b
c
d - dev
/
e
f - feature
既然dev不是一个head,那么仍然可以将dev提升到feature,使dev和feature都指向f吗
我很确定git可以很好地做到这一点,但似乎无法说服Mercurial也这么做……hg中的命名分支(与git不同)没有“指向”任何地方。分支名称不是特定版本的可移动别名。每个提交都有一个元数据标记,用于命名提交所在的分支;就这些
在这种情况下,如果在开发分支上没有从“d”开始的单独提交,那么您需要做的就是运行“hg branch dev”,然后您的下一个提交(从“f”开始)将返回到分支开发。我认为这将实现您所期望的结果
编辑:这会起作用,但Steve Losh关于进行实际合并的建议将导致更合理的历史。卡尔·迈耶是对的。你是git用户,Mercurial处理事情的方式不同 你可以按照Carl的建议去做,然后强制下一次提交到dev分支上。如果我看到它,我个人会感到相当困惑,因为在开发分支中会有一个中断 我处理它的方法是将功能分支合并回:
hg update dev&&hg merge feature&&hg commit-m“合并到已完成的功能中”。
这将产生如下图形:
a - dev
b - dev
c - dev
d - dev
/|
e | - feature
f | - feature
\|
g - dev
对我来说,这清楚地说明了发生了什么。您为一个新功能分支,并在完成时将其合并到dev分支中。在此期间,在dev上没有其他提交只是巧合,不必更改工作流。Hm。我一直想尝试使用您的方法,但我不太记得我做错了什么。也许我会玩得更久一点,看看我能不能弄明白。谢谢你们两个!你在哪个分支上运行那个命令?戴夫?如果在Feature上执行,会给我一个“交叉分支”错误实际上这也是Git中更好的工作流,即使Git允许您更改分支的提交id引用+1.