[英]Git - upstream + feature branches + release branches
我正在使用rebasing主题分支工作流程http://www.golden-gryphon.com/software/misc/packaging.html
但是因为本地测试人员和管理员不喜欢一次性发布分支,所以我需要转移到具有稳定分支的工作流。
唯一可接受的是合并工作流程。 现在的问题是我不知道如何使用此工作流中的相关功能分支。 在变基础时,这很简单,每个补丁我只是重新设置依赖于这个分支的所有功能分支,一切都恢复正常。 通过合并工作流程,我无法修改我的功能分支,但合并似乎有点疯狂。
有更好的方法吗?
有几个长期功能,模型可能如下所示:
o-----o bugfix
/ \
o--o--o------o------o develop branch
\ \ \
o-o----o---o--o long-term feature 1
\ \ \ \
o--o-o-o-o--o--o feature 2
基本上,您有一个开发分支,并将错误修正合并到您的开发分支。 长期功能分支是开发分支的基础,您可以通过合并该开发分支的新更改来更新它。
同样,您有一个基于功能1的reature 2的功能分支,您可以通过合并新功能新功能1分支来更新它。
完成功能1后,将其合并回来进行开发,并从develop分支更新功能2:
o-----o bugfix
/ \
o--o--o------o------o---o---o develop branch w/ feature 1
\ \ \ / \
o-o----o---o--o \
\ \ \ \ \
o--o-o-o-o--o--o--o-o feature 2
合并和rebase工作流之间的主要区别在于,合并在rebase工作流中是不可见的,但它们仍然会发生(您可以在rebase之后的reflog中看到它们)。 然后使用rebase甚至更多,因为对于要重新分支的分支的每个新变更集都执行它自己的合并,而在简单合并工作流中,仅完成两个分支头之间的一个合并。
典型的合并工作流程如下所示:
o-o-o--------------o Release1+bugfixes
/ \ \
o-----o----o--o-o--o---o----o-o-o-o-o--o develop
\ / \ /
o-o-o Feature 1 o---o Feature 2
短期功能是在开发中发展起来的,长期功能得到了自己的分支。 功能分支合并回到开发中。 对于每个版本,都会从develop创建一个分支,并在发布错误的发布分支上创建错误修正。 当一个错误修复完成后,它将合并回到develop。
可以在http://nvie.com/posts/a-successful-git-branching-model/找到更好的解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.