Git Commit message 规范化工具

一般来说,commit message 应该清晰明了,说明本次提交的目的。

规范

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

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

1、Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。

(1)type

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

- feat:新功能(feature)
- fix:修补bug
- docs:文档(documentation)
- style: 格式(不影响代码运行的变动)
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)
- test:增加测试
- chore:构建过程或辅助工具的变动

(2)scope

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

(3)subject

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

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

2、Body 部分是对本次 commit 的详细描述,可以分成多行。
3、Footer 部分只用于两种情况。
(1)不兼容变动
(2)关闭 Issue

工具

Commitizen是一个撰写合格 Commit message 的工具。

全局安装命令如下。

$ npm install -g commitizen cz-conventional-changelog
$ echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

主要, 全局模式下, 需要 ~/.czrc 配置文件, 为 commitizen 指定 Adapter.

如果全局安装过 commitizen, 以后,凡是用到git commit命令,一律改为使用git cz
这时,就会出现选项,用来生成符合格式的 Commit message。

参考资料
Commit message 和 Change log 编写指南
优雅的提交你的 Git Commit Message

添加新评论