繁体   English   中英

Git - 上游+功能分支+发布分支

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM