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

时间:2010-10-29 10:32:43

标签: git

我使用的是变基主题分支工作流程http://www.golden-gryphon.com/software/misc/packaging.html

但是因为本地测试人员和管理员不喜欢一次性发布分支,所以我需要转移到具有稳定分支的工作流。

唯一可接受的是合并工作流程。现在的问题是我不知道如何使用此工作流中的相关功能分支。在变基础时,这很简单,每个补丁我只是重新设置依赖于这个分支的所有功能分支,一切都恢复正常。在合并工作流程中,我无法修改我的功能分支,但合并似乎有点疯狂。

有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

有几个长期功能,模型可能如下所示:

     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完成后,您将其合并回来开发,并从开发分支更新功能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

答案 1 :(得分: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/找到更好的解释。