如何使用 gitflow 发布一个版本
How to use gitflow for one release
我将从头开始开发 iOS 应用程序,它只是现有 android 应用程序的复制。
此应用程序中有 7 个模块(登录、注册...),客户希望在完成后测试每个模块,以便在所有模块完成并测试良好后将应用程序发布到应用商店。
我将在这个项目中使用 git-flow,它有很多分支(master、develop、release、features...)
我的问题是,在那种情况下,当我只有一个版本 (1.0) 将发布到项目结束时,我该如何使用 "release" 分支?
当新模块(功能)已处于开发阶段时,我如何管理交付模块(功能)的 IPA 以进行测试?
你想多了。
master
中的标签不代表 "released to the public" 的代码,它代表具有 "finished development and testing" 的代码。这些标签不是public,它们是帮助开发团队管理代码的标记。
向用户(public 或私有)发布代码是一项 业务 决策,与 git-flow 或任何其他分支模型无关.说某事满足预期要求是一个相关的 project 决定。 *
所以对于你所描述的情况,我认为以下过程(或类似的过程)是有道理的:
- 创建
develop
的 feature
分支
- 完成开发工作(包括代码审查和开发人员测试)
- 将
feature
合并回 develop
- 为 QA 测试创建
release
分支 **
- 测试(和修复)完成后,将
release
合并到 master
并将其标记为版本“0.1”
- 合并
release
到 develop
- 对版本“0.2”、“0.3”等重复
在 master
中,您将拥有“0.1”、“0.2”等标签。这些代表应用程序的不完整版本,功能稳定,但不适合完整发布。最后,当您拥有版本“0.7”(或者这需要多少个周期)时,business 将做出 "this version of code is complete and suitable for release" 的决定。然后(并且只有那时)您在 master
.
中创建标签“1.0”
以后的开发会使用标签“1.1”、“1.2”等。简而言之,在这个版本控制方案中,第一个数字代表"released version"(由业务决定),第二个数字代表"development iteration".
*显然这两个 concerns/processes 相互作用并相互通知,但这是一个完全不同的话题。
**您不必为每个功能分支都执行此操作,但听起来您是一个人在工作,并且会按顺序进行开发。合并多个 feature
分支并创建单个 release
分支进行测试是完全合理的。
我将从头开始开发 iOS 应用程序,它只是现有 android 应用程序的复制。
此应用程序中有 7 个模块(登录、注册...),客户希望在完成后测试每个模块,以便在所有模块完成并测试良好后将应用程序发布到应用商店。
我将在这个项目中使用 git-flow,它有很多分支(master、develop、release、features...)
我的问题是,在那种情况下,当我只有一个版本 (1.0) 将发布到项目结束时,我该如何使用 "release" 分支?
当新模块(功能)已处于开发阶段时,我如何管理交付模块(功能)的 IPA 以进行测试?
你想多了。
master
中的标签不代表 "released to the public" 的代码,它代表具有 "finished development and testing" 的代码。这些标签不是public,它们是帮助开发团队管理代码的标记。
向用户(public 或私有)发布代码是一项 业务 决策,与 git-flow 或任何其他分支模型无关.说某事满足预期要求是一个相关的 project 决定。 *
所以对于你所描述的情况,我认为以下过程(或类似的过程)是有道理的:
- 创建
develop
的 - 完成开发工作(包括代码审查和开发人员测试)
- 将
feature
合并回develop
- 为 QA 测试创建
release
分支 ** - 测试(和修复)完成后,将
release
合并到master
并将其标记为版本“0.1” - 合并
release
到develop
- 对版本“0.2”、“0.3”等重复
feature
分支
在 master
中,您将拥有“0.1”、“0.2”等标签。这些代表应用程序的不完整版本,功能稳定,但不适合完整发布。最后,当您拥有版本“0.7”(或者这需要多少个周期)时,business 将做出 "this version of code is complete and suitable for release" 的决定。然后(并且只有那时)您在 master
.
以后的开发会使用标签“1.1”、“1.2”等。简而言之,在这个版本控制方案中,第一个数字代表"released version"(由业务决定),第二个数字代表"development iteration".
*显然这两个 concerns/processes 相互作用并相互通知,但这是一个完全不同的话题。
**您不必为每个功能分支都执行此操作,但听起来您是一个人在工作,并且会按顺序进行开发。合并多个 feature
分支并创建单个 release
分支进行测试是完全合理的。