是否有一种传统的方法来支持git中的多个版本?

时间:2014-04-28 19:20:37

标签: git workflow release-management

是否有一个git工作流程,旨在维护来自多个git分支的软件(例如,发行版1.1) 很久以前从master那里分支出来,并且最近发布了。功能分支 工作流程,Gitflow工作流程和分岔工作流程都有很好的文档,但我还没有找到 有关管理多个版本的信息。

管理多个版本需要一个将修补程序和功能应用于一个或多个的过程 发布分支机构主分支将用于维护未来版本的所有更改, 最接近master的版本可能会获得一些功能和修补程序,最远的版本会得到最少的版本 更新,离主人最远的发布将是第一个达到临终的。

我认为它看起来像

master -------+----------+----------+----------+------+-----------+--------------------
               \          \          \        /        \         /
                \          \          Hotfix-+          Feature-+
                 \          \                  Hotfix             Feature
                  \          release_1.2-------+------------------+---------------
                   \                             Hotfix
                    release_1.1------------------+----------------------End-Of-Life

以下内容经过修改后看起来更像是Git Flow,但是使用了' release_1.1'分支。

                                          release_1.1---------+---------+---
                                          |                    \       /
                                          |                     Hotfix3             
                                          |
     tag 1.0     tag 1.0.1     tag 1.1  tag 1.1.1     tag 1.2  tag 1.2.1
       |           |             |        |             |        |
master +-----------+-------------+--------+-------------+--------+------------------
       |          /             /        /             /        /
       |         /             /        /             /        /
       \  Hotfix1             /  Hotfix2             /  Hotfix3        
release |        \       +-+-+          \       +-+-+          \
        |         \     /     \          \     /     \          \
develop +-+--------+---+-------+-+--------+---+-------+----------+------
           \          /           \          /
            FeatureA-+             FeatureB-+

1 个答案:

答案 0 :(得分:0)

您无法将基于当前master的修补程序分支合并到旧版本中 - 这也会将master中的所有更改引入旧版本。因此,您必须选择master的共同祖先和所有发布分支作为修补程序分支的基础,通常是您仍希望支持的最旧修订版与master不同的点。从那时起,对于每个版本,(1)将修补程序分支合并到发布分支,然后(2)将下一个版本从master分离的点合并到修补程序分支中并解决冲突。最后,将修补程序分支合并回master

您可能需要查看http://nvie.com/posts/a-successful-git-branching-model/