GIT版本控制规范

一、定义说明

分支名称 分支用途 保护分支

master 主分支,记录发布历史,每次发布版本需要打Tag记录发布信息。 是

release 发布分支,用于测试环境打包。 是

develop 开发分支,记录开发历史,特性开发完成后需要合并到此分支。 否

feature 特性分支,用于记录某个特性的开发历史,上线后,删除对应特性分支。 否

hotfix 修复分支,用于紧急修复线上问题,修复后,删除对应修复分支。 否

二、命名规范

2.1 分支命名规范

分支名使用全部小写方式命名。

master分支、develop分支在创建仓库时进行创建。

release分支在创建仓库时进行创建,如存在多套测试环境,则使用 "/" 分隔后命名。

feature分支由对应开发人员进行创建及删除,使用 "/" 分隔后命名,如feature/topic。

2.2 Commit 提交规范

Commit需清晰表示任务编号(TaskId)、任务名称、修复错误编号(BugId)、错误名称、详细说明、提交人等,统一使用以下格式进行提交。

提交格式: 顶部Header、内容Body、尾部Footer,共三部分。

顶部Header占一行,使用一句话概括此次提交的变更内容。(包括三个字段:type(必需)、scope(可选)和subject(必需)。)

内容Body占多行,详细说明一个个变更点。

尾部Footer占一行,标识关联哪一个task、bug。

各部分详细说明:

:用于说明 commit 的类别,只允许使用下面8个标识。

feat:新功能(feature)

fix:修补bug

docs:文档(documentation)

style: 格式(不影响代码运行的变动)

refactor:重构

test:增加测试

build:构建过程或辅助工具的变动

:scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。可以使用 pojo、dao、service等。

:subject是 commit 目的的简短描述,不超过50个字符。

:footer 标识完成了哪一个任务,解决了哪一个Bug。标识符有bug, story, task。

例如:bug#123,234, 1234;story#123 task#123;

提交示例:

feat(service): 登录接口功能开发1. 手机号登录接口开发完成2. 第三方登录接口开发完成task#123

三、流程规范

3.1 创建分支流程

开发组长需以develop为父分支创建功能特性分支,组员Fork主仓库后,切换到特性分支进行开发,每日下班前需提交程序代码,并同步到远程。

功能特性分支未开发完成前不可合并到develop 分支,。

举例1: 【开发A】进行【用户登录】需求的开发。

A 切换到develop分支,拉取最新代码。

A 以develop为基准,创建 feature/login 分支。

A 在feature/login提交变更,每天将本地代码同步到远程。

开发完成后,将 feature-login 合并到 develop。

举例2: 【开发A】进行【用户登录】需求的开发,同时【开发B】进行【热门文章】需求的开发。

A 以develop为基准,创建 feature/login 分支。

B 以develop为基准,创建 feature/topic 分支。

A、B每天将本地代码提交到自己的远程分支。

A 开发完成后,将 feature/login 合并到 develop。

B 开发完成后,拉取最新develop,合并代码后将 feature/topic 合并到 develop。

3.2 提交测试流程

测试申请由开发人员提交,开发人员需在GitLab中发起Merge Request,由测试人员进行合并、打包、部署。Merge Request只允许从 develop 分支合并到 release 分支。

举例1: 【开发人员A】完成【用户登录】功能的开发,需要提测。

A 切换到develop 分支,拉取最新代码。

A 发起 Merge Request,将develop 分支合并到release 分支(develop分支均为已完成的功能,故可以合并)。

测试人员合并分支,并部署到测试环境。

测试人员开始测试。

3.3 提交UAT流程

验收申请由测试人员提交,测试人员需发起Merge Request,由技术经理进行合并。Merge Request只允许从release 分支合并到 master 分支。

举例1: 【测试人员C】完成【用户登录】功能的测试,需要验收。

C 发起 Merge Request,将release分支合并到master分支。

技术经理审核,合并代码。

验收人员进行验收。

3.4 发布上线流程

运维人员负责产品的发布上线工作,程序发布到生产环境,测试通过后通知开发人员打Tag。

3.5 Hotfix 流程

Hotfix用于紧急修复线上错误,出现线上问题时应首先考虑回滚、修改配置等解决方案。

首先,开发人员切换至master分支,checkout 最后一次Tag位置,针对问题进行修复。

而后,将修复后的程序提交UAT环境进行测试,测试通过后进行发布。

最后,将补丁合并至master分支和develop分支,对master分支打Tag记录修复明细。

你可能感兴趣的:(GIT版本控制规范)