【发布时间】:2014-06-14 11:52:10
【问题描述】:
是否有一个 git 工作流程旨在维护来自多个 git 分支的软件(例如,release.1.1 很久以前从 master 分支,release.1.2 最近从 master 分支)。功能分支 Workflow、Gitflow Workflow 和 Forking 工作流有很好的文档,但我还没有找到 有关管理多个版本的信息。
管理多个版本需要一个将修补程序和功能应用到一个或多个版本的过程 发布分支。主分支将用于维护未来版本的所有更改, 最接近主版本的版本可能会获得一些功能和修补程序,最远的版本会获得最少的 更新,离主版本最远的版本将是第一个达到生命周期结束的版本。
我认为它看起来像
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-+
【问题讨论】:
-
您是否正在寻找一种标准或建议的方式来管理版本,或者如何为其他分支带来新的更改(修复/功能)?
-
寻找一种标准或建议的方式来使用 git 管理发布以避免重新发明轮子。
-
您在问题中提到了 Git Flow。我想知道它如何不足以满足您的需求?它似乎提供了您正在寻找的东西......
-
比起能支持多发布,能快发布不是更方便吗?如果您对自动化测试有足够的信心,可以在几分钟(或几小时)内随时发布,那么您可能永远不需要同时发布两个版本。
-
Git Flow 已关闭,但我看不出有人如何在不进行升级的情况下获得修补程序。例如,如果 master 中有一个主要功能需要硬件升级(FeatureB),并且在 FeatureB 中找到了一个主要的安全修复程序(Hotfix3)怎么办。我想知道是否可以返回并为 1.1 版创建一个分支并实施安全修复 (Hotfix3),并维护该分支直到每个人都有机会升级。
标签: git workflow release-management