安装插件

首先安装插件 Git Commit Template

在commit 点击图标即可 打开窗口

image-20211123102751022

Git规范

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

更多 Angular 规范 参考GitHub:https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit

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

1
2
3
Header
Body
Footer

每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。

1
2
3
4
5
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

其中,Header 是必需的,Body 和 Footer 可以省略。

不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。

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

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

对应 idea

image-20211123101617250

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

scope

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

subject

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

  • 以动词开头,使用第一人称现在时,比如change,而不是changedchanges
  • 第一个字母小写
  • 结尾不加句号(.

Body

Body 部分是对本次 commit 的详细描述,可以分成多行。

有两个注意点。

(1)使用第一人称现在时,比如使用change而不是changedchanges

(2)应该说明代码变动的动机,以及与以前行为的对比。

日常项目开发中,如果 Headersubject已经描述清楚此次代码变更的内容后,Body部分就可以为空。

(1)不兼容变动

(2)关闭 Issue

日常项目中开发,Footer不常用,可为空。

另外

Revert情况

若需要撤销上一次的commit,header部分为:revert: 上一次commit的header内容;

body 部分为:This reverts commit xxx,xxx是上一次commit对应的SHA 标识符。

参考

http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html.