背景
由于Git的分支比SVN更好管理且更易使用,最近团队从SVN迁移到Git,需要重新规划开发流程,最终确定使用Git-flow工作流,这是目前比较流行的一种分支模型,下面是Git-flow的简易流程图。
Git-flow分支介绍
master
是线上版本分支,也可以理解为随时可以发布的稳定版本,要求在每次版本封版后由主程序员合并release
分支代码进来,开发人员不可以随意操作。
develop
用来开发的分支,通常可以直接在其上进行开发,在每次发布版本和线上紧急bug修复后,需要同步到其上,理论上此版本只在开发阶段使用,提测时不可以直接修改,而在测试结束后由release
分支合并到其上。
release
当开发结束后用来提测的分支,所有测试阶段的bug全部在此分支修复,测试结束后合并到 master
和 develop
分支中
feature
如果在团队开发时,有一个功能的开发周期要长过本次版本开发周期,建议开启一个 feature
进行单独开发,当需要此功能的时候,只需要将 feature
合并入 develop
分支,下次一并提测即可。这样设计可以避免这个功能在尚未开发完成或者通过测试的时候混入发布的版本,而导致不可预知的不稳定。当然也可以同时开启多个 feature
分支进行不同新功能开发,在合适的时候合并提测即可。
hotfix
线上bug修复的热补丁分支,应由 master
拉出,并在修复完成后合并入 master
和 develop
保证两分支的bug已修复。
推荐一款Git GUI工具 SourceTree 在Windows和Mac都可以使用,Mac下应该是更好用一些,第一安装注册时可能要翻墙,默认也支持Git-flow工作流,可以在其中开启。