基本上,我有dev分支,我喜欢做的是在实现某些东西时创建一个功能分支,然后将其合并。所以发生如下情况
a
b
c
d - dev
/
e
f - feature
由于dev不是头脑,是否仍然可以将dev设置为dev和feature指向f?
我很确定git可以做到这一点很好,但似乎无法说服Mercurial做同样的事情......
答案 0 :(得分:19)
Carl Meyer是对的。你正在考虑作为一个git用户,Mercurial以不同的方式处理事情。
您可以执行Carl建议的操作,并强制下一次提交在dev分支上。如果我看到它,我个人觉得这很混乱,因为开发分支会有不连续性。
我处理它的方法是将功能分支合并到:hg update dev && hg merge feature && hg commit -m 'Merge in the completed feature.'
这将产生如下图形:
a - dev
b - dev
c - dev
d - dev
/|
e | - feature
f | - feature
\|
g - dev
对我而言,这清楚地说明了究竟发生了什么。您完成了分支以获取新功能并将其合并到dev分支中。在此期间,dev没有其他提交的事实只是巧合而不必改变工作流程。
答案 1 :(得分:6)
hg中的命名分支(与git不同)不要“指向”任何地方。分支名称不是特定转速的可移动别名。每个提交都有一个元数据标记,用于命名提交的分支;就是这样。
在这种情况下,如果你没有在dev分支上从“d”下降的单独提交,那么你需要做的就是运行“hg branch dev”然后你的下一次提交,从“f”开始,将回到分支开发。我认为这将实现您正在寻找的结果。
编辑:这样可行,但史蒂夫·洛什建议进行实际合并会带来更明智的历史。