新建项目
代码语言:javascript复制 项目负责人在项目组下面新建项目(以下简称‘主项目’),所有参与该项目开发的人员,必须fork此项目到自己的工程(以下简称‘fork项目’),然后进行开发。
主项目分支
代码语言:javascript复制 主项目建立hotfix、release、dev、test四个分支。
dev分支
代码语言:javascript复制 dev是开发分支,开发分支是更新最频繁的分支,开发人员正在开发的代码都必须且只能提交Merge Request(以下简称MR)到这个分支。
test分支
代码语言:javascript复制 test是测试分支,用于发布测试环境。项目完成一个或多个功能点或者用户故事时,由负责测试版本发布的人员先从dev分支合并到test分支,然后发布到测试环境。
hotfix分支
代码语言:javascript复制 hotfix是热修复分支,用于修复线上bug。开发人员提交的修复代码提交MR时选择该分支。当问题确定被修复后,项目负责人再将hotfix分支的代码同步到dev和master分支。
release分支
代码语言:javascript复制 release分支是版本发布分支,用于发布线上版本时,由负责版本发布的人先从master分支合并到release分支,然后发布到正式环境。
commit规范
代码语言:javascript复制 每次的commit按照【标签】该次提交主要内容进行提交
标签分为5类:
* feature (新功能)
* bug (bug修复)
* refactor (重构)
* other (其他)
* tag(版本tag)
fork项目规范
代码语言:javascript复制 * master 分支不要作为开发分支,master分支可以对应主项目的master
* 从master分支切一个新的dev分支作为开发分支,dev分支可以跟主项目的dev分支对应
* 按照功能点,可以从dev分支切出功能分支,命名以feature-[功能]的形式,当一个功能点完成后,才合并到dev分支,这就避免了一个功能点还未完成,但另一个功能点需要上线的情况
* 每次的PR为一个功能点,避免review比较困难。
分支结构
代码语言:javascript复制综上,项目的分支结构大致如下:
主项目:
* master
* dev
* test
* hotfix
* release
fork项目:
* master
* dev
* feature-xxx
* feature-yyy