基本上,我有一个开发分支(dev branch),我想做的是在实现某些功能时创建一个特性分支(feature branch),然后再将其合并回去。所以会出现以下情况:
a
b
c
d - dev
/
e
f - feature
由于dev不是头部,是否仍然有可能将dev提升到feature,使得dev和feature都指向f?
我相信git可以很好地完成这个任务,但似乎无法说服Mercurial做同样的事情...
Carl Meyer是正确的。您正在以Git用户的身份思考,而Mercurial处理方式不同。
您可以像Carl建议的那样,强制下一次提交在dev分支上进行。但是如果我看到这样做,个人会觉得相当混乱,因为在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上没有其他提交事实只是巧合,并不必改变工作流程。