Gitflow
标准的 Gitflow 示例如下:
Gitflow 完整工作流程如下:
- Develop 分支从 Master 分支切出。
- Release 分支从 Develop 分支切出。
- Feature 分支从 Develop 分支切出。
- 当 Release 分支完成时,合并至 Develop 分支和 Master 分支。
- 若 Master 分支检测到问题,则会从 Master 分支切出 Hotfix 分支。
- 当 Hotfix 分支完成时,合并至 Develop 分支和 Master 分支。
Master 分支可通过 Tag 标记版本,并以 Tag 为节点发布至生产环境。
任一 Feature 均应有一个对应的 Feature 分支,不同 Feature 不可混用同一分支。
Feature 分支需以最新的 Develop 分支为基线,完成开发后,再合并回 Develop 分支中。Feature 分支不会与 Master 分支产生关联。
当 Develop 分支中已集成一定量的 Feature 或预定的发布日期临近时,即可考虑发版。发版是从 Develop 分支切出一个 Release 分支,同时表示本 Release 周期已结束,并开启下一个 Release 周期。此后所有新 Feature 均不会体现在此 Release 分支上,将集成至 Develop 分支并最终切到下一个 Release 分支。
Release 分支上的修改仅限于缺陷修复、自动化工具生成的文档等,不允许出现新的 Feature。
对于 Release 分支上的缺陷修复,应切出新的分支进行问题修复并验证,之后再合并回该 Release 分支和 Develop 分支。
Release 分支可合并至 Master 分支并打上对应 Tag。
Hotfix 分支用于快速修复生产上的问题。当生产线上出现问题并定位后,从对应 Tag 的 Master 分支切出 Hotfix 分支,解决问题并验证后,Hotfix 分支需合并回 Master 分支和 Develop 分支,并在 Master 分支上打上 Tag。