Git commit message 提交日志格式
1. 提交日志格式
每次提交, Commit message 都包括三个部分: header
, body
, footer
。
1 |
|
其中header
是必须的, body
和footer
可以省略。
提交消息的任何行都不能超过100个字符!为了在github以及各种git工具中更容易阅读消息。
2. header
header部分只有一行, 包括三个字段type
(必须), scope
, subject
。
(1) type
用于说明commit
的类别。
type | 描述 |
---|---|
feat | 新功能(feature) |
fix | 修补bug |
docs | 文档(documentation) |
perf | 改进性能的代码更改 |
style | 不影响代码含义的更改(空格,格式,缺少分号等) |
refactor | 重构(即不是新增功能, 也不是修改bug的代码变动) |
test | 添加缺失测试或更正现有测试 |
chore | 其他修改(非src或测试文件的修改) |
ci | CI配置文件和脚本的更改(示例范围: Circle, BrowserStack, SauceLabs) |
build | 影响构建系统或外部依赖项的更改(示例范围:gulp,broccoli,npm) |
revert | 返回以前的提交 |
(2) scope
用于说明commit
影响的范围, 比如数据层、控制层、视图层等等, 视项目不同而不同。
(3) scope
是commit
目的的简短描述, 不超过50个字符。
- 以动词开头, 使用第一人称现在时, 比如change, 而不是changed或changes
- 第一个字母小写
- 结尾不加句号(.)
3. body
body
部分是对本次commit
的详细描述, 可以分成多行。
下面是一个范例:
1 |
|
有两个注意点:
1 |
|
4. footer
footer
部分只用于两种情况:
(1)不兼容变动
如果当前代码与上一个版本不兼容,则footer
部分以BREAKING CHANGE
开头,后面是对变动的描述、以及变动理由和迁移方法。
(2)关闭Issue
如果当前commit
针对某个issue,那么可以在 Footer 部分关闭这个 issue 。
1 |
|
也可以一次关闭多个 issue 。
1 |
|
5. revert
还有一种特殊情况,如果当前commit
用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销commit
的 Header。
1 |
|
Body部分的格式是固定的,必须写成This reverts commit commit
的 SHA 标识符。
如果当前commit
与被撤销的 commit,在同一个发布(release)里面,那么它们都不会出现在 Change log 里面。如果两者在不同的发布,那么当前 commit,会出现在 Change log 的Reverts小标题下面。