前言
刚开始项目的开发流程是:每个开发人员在原项目基础上fork建立了一个自己的本地分支,每次提交前先push到自己本地分支,然后通过gitlab再pull request到主项目的分支上,进行代码审核完成后合并到主项目。
项目开发完成,临近上线,发现这种工作流程不利于到时线上紧急修复bug及版本迭代控制,决定使用git-flow控制流程。
git flow 图
整体可分为5个分支:
master branch(永久存在):维护线上正式发布版本,master分支只能合并其他分支,并且只有管理人员有merge权限;
hotfixes branch ( 临时存在 ) : 用于线上bug紧急修复,当需要紧急修复时,从master分支 checkout 此分支出来,修复完bug测试通过后,merge 到 master 、 develop分支,并 delete hotfixes 分支, 版本迭代完成;
develop branch(永久存在): 用于功能开发迭代,从master checkout, 在该分支基础上进行功能开发,阶段开发结束后, checkout release 分支,用于测试人员测试,测试通过后,merge release 到 master 、 develop分支,并delete release 分支
feature branch ( 临时存在) : 当需要同时进行不同功能的开发时,从develop 分支 checkout feature 分支,开发完成后 merge 回develop ,发布到release分支测试,删除feature 分支
release branch ( 临时存在) : 用于功能测试,开发完一个新功能后,在该分支上进行测试, 新功能bug也在改分支上修复, 测试通过后 merge到 master 、 develop 分支, delete此分支