分支类型 | 命名规则 | 备注 |
---|---|---|
主分支 | main | |
开发分支 | develop | |
功能分支 | 除 master 、main 、develop 、release-* 、hotfix-* 以外的任何名字 | 避免使用 master 、main 、develop 、release-* 、hotfix-* |
预发布分支 | release-* | 名称中的 * 表示版本号或其他标识 |
热修复分支 | hotfix-* | 名称中的 * 表示版本号或其他标识 |
为了防止产生歧义,我们建议避免使用简拼命名。
主要分支
中央仓库中存在两个生命期无限长的主要分支:
- Main(主分支)
- Develop(开发分支)
主分支 origin/main
的 HEAD
指向的源码总是处于可发布的状态。另一方面,开发分支 origin/develop
的 HEAD
指向的源码应包含为下次版本发布准备的最近的一次提交。
当 develop
分支上的代码达到一个稳定点,并且准备进行发版时,所有在该分支上的修改都应该合并回 main
分支,并且打一个版本号标签(tag
)。
辅助分支
为了协助平行开发,简化功能追踪,协助产品发布和快速修复线上版本的 bug,我们采用了功能分支、预发布分支和热修复分支。
- Feature branches (功能分支)
- Release branches (预发布分支)
- Hotfix branches (热修复分支)
功能分支
功能分支是从 develop
创建,必须合并回 develop
。这些分支主要存在于开发者的本地仓库,不在远程仓库 origin
中。
预发布分支
预发布分支从 develop
创建,必须合并回 develop
和 main
。这些分支用于准备新版本的发布,包括进行小的 bug 修复和准备发布数据。发布后,预发布分支可以删除。
热修复分支
热修复分支从 main
创建,必须合并回 develop
和 main
。这些分支用于修复线上版本的严重 bug。修复完成后,热修复分支可以删除。如果当前存在预发布分支,热修复分支应该合并到预发布分支,而不是开发分支。