点击查看【bilibili】
一个企业当中项目,一般来说,是几个人同时进行开发的,那么如何对git分支进行管理就成了一个重点问题。
那么这里,我们就需要介绍一下我们的git flow工作流程了。
我们先从代码的运行环境来说起。代码运⾏的环境 ⼀般来说,公司团队都会有⾄少这⼏个环境:
- 本地开发环境: 开发⼈员⾃测的,可以是⾃⼰本地部署的静态服务器,当然也可类似是运⾏ npm server类似的环境,本地环境运⾏ 的代码可以是任何分⽀的
- dev开发环境: 这个环境是⽤开发分⽀dev产出的代码来部署的,唯⼀的公⽤的
- 测试&预发布环境: 这个环境是⽤开发分⽀release产出的代码来部署的,唯⼀的公⽤的
- 线上⽣产环境: 这个环境是⽤开发分⽀master产出的代码来部署的,唯⼀的公⽤的
对应的git分支模型是这样的
对应的分支策略是这样的
- master :保护分⽀,对应的就是⽣产环境的分⽀
- release:保护分⽀,所有开发完成的分⽀会申请合并到release分⽀,提供给测试⼈员测试
- feature-*:功能分⽀,具体功能开发
- dev/test-*:开发分⽀&脏分⽀,对应的是⼤家共⽤的开发环境,上⾯的代码会部署到⼀个公共的开发环境,供开发⼈ 员做⾃测,应付⼀些⽇常、⾮⽇常的调试
- hotfix-*:bug紧急修复分⽀,可以直接合并到master,(假如release合并了⼏个feature分⽀,正在测试的情况 下,发现需要紧急修复的buf,紧急修复测试完毕后,可以直接合并到master,如果合并到release,在由 release合并到master,那些正在测试的功能或者还不准备上线的功能就会跟着直接上线了)
工作流程介绍
- 接到需求⽂档,做评审后分配个每个⼈或⼩组的功能开发,相关⼈员从master 检出功能分⽀
- 开发的时候除了会在本地测试,有需要还会合并到dev分⽀,在公共的开发环境去⾃⼰做测试
- 因为在开发功能的期间,可能有hotfix完成合并到master,合并代码的时候习惯merge⼀下master,防⽌冲突 等
- ⾃测完成之后,申请合并到release,合并成功后部署到测试环境后通知测试⼈员做测试
- 测试通过后,release申请合并到master,准备上线
- 如果测试不通过,在功能分⽀修改后重新merge
- 上线成功稳定后删除对应的功能分⽀,dev 合并最新的master分⽀