Git使用or实现以下工作流程的首选方法是什么Subversion (我对这个版本更感兴趣Git,但比较肯定会有用):
假设我们最近发布了该产品的主要版本,并且有一个特定的 polisihin 分支,名为
release-2.0.x.然后开发继续进行,几个功能分支被合并到
master/trunk(它们稍后将成为即将到来的部分release-2.1.x)。现在,在某个时候,另一个特性(即
critical-feature)被开发并合并回master/trunk. 我们意识到这个特性是如此重要,以至于我们必须将它反向移植到release-2.0.x.
这是所描述案例的一个小伪图解。release-2.0.x请注意,顶部的所有内容都会导致与当前之间的树差异master/trunk并导致合并问题(否则我可以简单地合并critical-feature并避免写这个问题:)
(features added since 2.0.x, which
should not be backported)
^ ^ ^
| | | (code refactorings done
| | | in master/trunk)
\ | / (*) (*) (*)
-------------------------------------------------------> master/trunk
| |
| |
| |
\ release-2.0.x \ critical-feature
(should be backported)
问题:
从这个角度来看,执行功能反向移植的最佳方式是
VCS什么?这应该作为具有解决冲突冲突
merge的相应分支的简单来完成吗?critical-feature或者这应该作为
cherry-pick提交的 完成,它在完成时合并critical-feature到master/trunk?或者甚至可能作为分支cherry-picks中每个提交的一组critical-feature?你能为冲突解决程序提供一些建议吗?如果
release-2.0.x和之间的当前差异master/trunk如此之大,“幼稚”的反向移植会由于代码重构和缺少功能而导致大量冲突,或者API在release-2.0.x?除了标准的合并或挑选方法之外,是否
Git或有针对此例程提供的特定内容?Subversion我想在冲突数量很大的情况下,重新设置基准不会有帮助,但是,显然,我可能是错的。