使用git进行版本管理

x33g5p2x  于2021-06-19 转载在 Java  
字(2.7k)|赞(0)|评价(0)|浏览(300)

版本样例

V{主版本}.{次要版本(使用YYMMDD)}.{修复版本(每次部署UAT后增加1)}

名称备注
V1.200827.1827第一次UAT部署版本
V1.200827.2827第二次UAT部署版本
V1.200816.1816第一次UAT部署版本

分支管理

所有 CI 实践的源头一定是代码变更,好的代码分支管理和版本变更规范是做好 CI 实践的前提。 宝能基于 GitFlow 进行代码管理和协作流程的,主要的阶段包括预发验证、测试验证和代码审查、集成、验证。

分支规范

主要分支有 devlop 和 master,辅助分支包括 feature/*、release/v1.x.0、hotfix/v1.x.1。

分支说明

  • develop: 集成分支, 不允许 commit/push, 仅允许来自 feature/ 或 hotfix/v 分支的合并;
  • master: 版本分支, 不允许 commit/push, 仅允许来自 release/v或 hotfix/v 分支的合并, 每次接受合并后必须在其上创建 TAG;
  • feature/*: 功能分支, 从 develop 派生, 不允许来自 develop 的合并, 合并到 develop 后删除;
  • release/v1.x.0: 发版更新验证分支, 从 master 派生, 派生时根据 master 分支 TAG 标记并递第二位版本号命名。不允许 commit/push, 只允许来自 develop 的合并, 合并到 master 之后删除;
  • hotfix/v1.x.1: 补丁更新验证分支, 从 master 派生, 派生时根据 master 分支 TAG 标记并递增第三位版本号命名。允许 commit/push, 不允许 来自 develop 的合并, 合并到 master 后必须再合并到 develop , 合并后删除。

流程示意图

流程示意图

流程说明:

  • 功能分支(feature)创建自集成分支(develop);
  • 发布分支(release)创建自版本分支(master);
  • 功能分支(feature)开发完成后(指开发人员在本机完成自测),合并回开发分支(develop),并在dev环境做开发集成测试;
  • 开发分支(develop)完成后(指在dev环境做完开发集成测试),开发负责人将开发分支(develop)提交合并到发布分支(release),并由测试人员在sit环境做部署及测试;
  • 发布分支(release)完成后(指在UAT完成验收),合并回主分支(master),并在主分支(master)打tag;
  • 若版本分支(master)发现问题需要修复,从版本分支(master)创建紧急修复分支(hotfix);
  • 紧急修复(hotfix)完成后,合并回开发分支(develop)和版本分支(master);

git提交规范

Git 提交必须实名

用户名要求真实姓名的全拼。

1、查看全局用户名

git config  --global user.name

2、修改全局用户名

git config  --global user.name zhangsan

一、Git Commit message规范

常用的Git Commit message规范采用的是Angular 规范。

Angular规范中定义的格式有3个内容:

Header
Body
Footer

1、 Header

Header部分有3个字段: type(必需), scope(可选), subject(必需)

type(必需) : Type of change:commit的类别;
scope(可选):Scope of this change:此次commit的影响模块;
subject(必需):Short description:简短的描述此次代码变更的主要内容

(1)type

type用于说明commit的类别,常用的标识如下:

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动,空格,格式化,等等)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动
  • perf: 性能 (提高代码性能的改变)
  • test:增加测试或者修改测试
  • build: 影响构建系统或外部依赖项的更改(maven,gradle,npm 等等)
  • ci: 对CI配置文件和脚本的更改
  • chore:对非 src 和 test 目录的修改
  • revert: Revert a commit

最常用的就是feat和fix两种type;

(2)scope

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

(3)subject

subject是 commit 目的的简短描述,不超过50个字符,主要介绍此次代码变更的主要内容。

举个例子: eg: feat(订单模块):订单详情接口增加订单号字段 其中, feat对应type字段;订单模块对应scope(若果scope有内容,括号就存在);“订单详情接口增加订单号字段”对应subject,简要说明此次代码变更的主要内容。

2、Body

Body 部分是对本次 commit 的详细描述,可以分成多行。 如: (1)增加订单号字段; (2)增加了订单退款接口; 日常项目开发中,如果Header中subject已经描述清楚此次代码变更的内容后,Body部分就可以为空。

3、Footer

(1)不兼容变动 (2)关闭 Issue 日常项目中开发,Footer不常用,可为空。

4、Revert

若需要撤销上一次的commit,header部分为:revert: 上一次commit的header内容; body部分为:This reverts commit xxx,xxx是上一次commit对应的SHA 标识符。

git插件使用

插件安装

打开IDEA,选择Preferences - Plugins - Browse repositories后,在输入框中输入"Git Commit Template",可以看到返回结果中有"Git Commit Template"。 插件

点击插件详情中的"install"按钮,按照其提示即可完成安装,安装完成后需重启IDEA。

若无法联网安装,下载Git Commit Template jar包, 插件

打开IDEA,选择Preferences - Plugins - Install plugin from disk,然后从硬盘上选中插件的jar包,点击OK就安装成功了,安装后需要重启IDEA,点击重启按钮。

插件使用

更改代码之后,点击IDEA的Version Control版本控制:

插件

选中需要提交的文件点击"commit"按钮:

插件

选择Type,填写相应内容,填写规范请参考git提交规范,最后点击提交即可:

插件

相关文章