分支类型说明
| 分支名称 | 分支描述 | 唯一 | 权限管理 |
|---|---|---|---|
| release | 发布分支,内部分支,是历史可用的稳定代码分支 | 唯一 | 最高权限,由项目经理或者团队核心成员组管理 |
| master | 主干分支,对外发布的最新的最稳定代码 | 唯一 | 项目经理/版本经理创建 |
| hot fixes | 紧急故障修复分支(如现场故障),内部分支,从master拉出此分支,merge到master和develop分支 | 唯一 | 最高权限,由项目经理或者团队核心成员组管理 |
| feature | 特性分支,内部分支,当有新需求时,可以从develop的分支拉出此分支,开发完成后,merge到develop分支 | 不唯一 | 最高权限,由版本经理或者团队核心成员组管理 |
| develop | 开发分支,内部分支,团队成员的代码提交到此分支 | 唯一 | 最高权限,由团队核心成员组管理 |
场景分解
1. 项目启动
| 责任人 | 动作 |
|---|---|
| 项目经理/版本经理 | 创建master分支 |
2. 启动开发(develop)
| 责任人 | 动作 |
|---|---|
| 项目经理/版本经理 | 创建develop分支 |
| 团队成员 | 同步和提交develop分支 |
3.需求开发(feature)
| 责任人 | 动作 |
|---|---|
| 项目经理/版本经理 | 从develop创建feature分支并制定feature负责人 |
| 团队成员 | 同步和提交到feature分支 |
| 团队成员(feature负责人) | 同步feature分支到develop分支 |
4. 内部版本发布(release)
| 责任人 | 动作 |
|---|---|
| 项目经理/版本经理 | 从develop创建release分支 |
| 团队成员 | 同步和提交到release分支,只允许提交bug的代码【???】,不允许提交新功能代码 |
| 团队成员 | 同步release分支的bug到develop分支 |
| 项目经理/版本经理/核心成员 | Release结束后,同步release分支到master分支和develop分支,删除release分支 |
5. 外部版本发布(master)
| 责任人 | 动作 |
|---|---|
| 版本经理 | 为master分支Tag |
| 项目经理/版本经理 | 创建hotfixes分支 |
6. (hot fixes)
| 责任人 | 动作 |
|---|---|
| 团队成员 | 同步和提交(bug的解决方法)到develop分支 |
大致的开发过程是
定义feature阶段->开发develop -> 推送master -> 确认release -> 制作tag
分支说明
对于一个初级应用的团队或者小团队,可以简化分支:
1 裁剪掉release,hotfix分支
2 围绕develop分支进行开发,测试版本直接在develop分支上tag
3 开发人员可以自测feature/bug分支,开发完成后合并入develop分支
4 master分支的作用保持不变
来自「晒太阳的兔子很忙」的分享: www.cnblogs.com/bien94/p/11…