新建项目

 项目负责人在项目组下面新建项目(以下简称‘主项目’),所有参与该项目开发的人员,必须fork此项目到自己的工程(以下简称‘fork项目’),然后进行开发。

主项目分支

 主项目建立hotfix、release、dev、test四个分支。

dev分支

 dev是开发分支,开发分支是更新最频繁的分支,开发人员正在开发的代码都必须且只能提交Merge Request(以下简称MR)到这个分支。

test分支

 test是测试分支,用于发布测试环境。项目完成一个或多个功能点或者用户故事时,由负责测试版本发布的人员先从dev分支合并到test分支,然后发布到测试环境。

hotfix分支

 hotfix是热修复分支,用于修复线上bug。开发人员提交的修复代码提交MR时选择该分支。当问题确定被修复后,项目负责人再将hotfix分支的代码同步到dev和master分支。

release分支

 release分支是版本发布分支,用于发布线上版本时,由负责版本发布的人先从master分支合并到release分支,然后发布到正式环境。

commit规范

 每次的commit按照【标签】该次提交主要内容进行提交
 标签分为5类:
  * feature (新功能)
  * bug (bug修复)
  * refactor (重构)
  * other (其他)
  * tag(版本tag)

fork项目规范

 * master 分支不要作为开发分支,master分支可以对应主项目的master
 * 从master分支切一个新的dev分支作为开发分支,dev分支可以跟主项目的dev分支对应
 * 按照功能点,可以从dev分支切出功能分支,命名以feature-[功能]的形式,当一个功能点完成后,才合并到dev分支,这就避免了一个功能点还未完成,但另一个功能点需要上线的情况
 * 每次的PR为一个功能点,避免review比较困难。

分支结构

综上,项目的分支结构大致如下:
 主项目: 
  * master
  * dev
  * test
  * hotfix
  * release
 fork项目:
  * master
  * dev
  * feature-xxx
  * feature-yyy