Commit message 的作用
- ⽣成 CHANGELOG.md
- 提供更多的历史信息,⽅便快速浏览
- 可以过滤某些 commit(⽐如⽂档改动),便于快速查找信息
Commit message 的格式
Commit message 都包括三个部分:Header,Body 和 Footer
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
其中,Header 是必需的,Body 和 Footer 可以省略。
不管是哪⼀个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免⾃动换⾏影响美观。
下图为是我们的某个commit实例
[Image: image.png]
Header
**Example**
fix(mib): fix output mib type names
feat(smi): add mdio driver
docs(vlan): add vlan docs
Type
Type⽤于说明 commit 的类别,只允许使⽤下⾯7个标识。
Type | Description |
---|---|
feat | 增加新的功能 |
change | 对某一项功能做修改 |
fix | 修正bug |
refactor | 重构代码(不增加新的功能或者修改bug) |
remove | 删除某一项功能 |
style | 修正coding style(不影响代码运行) |
docs | 更新文档 |
Scope
Scope⽤于说明 commit 影响的范围,⽐如vlan、qos、mirror等等,视项⽬不同⽽不同。
Subject
Subject是 commit ⽬的的简短描述,不超过50个字符:
- 以动词开头,使⽤第⼀⼈称现在时,⽐如change,⽽不是changed或changes
- 第⼀个字⺟⼩写
- 结尾不加句号“.”
Body
Body 部分是对本次 commit 的详细描述,可以分成多⾏:
- 使⽤第⼀⼈称现在时,⽐如使⽤change⽽不是changed或changes
- 应该说明代码变动的动机,以及与以前⾏为的对⽐
Footer
Footer是本次commit关联的jira id,方便问题追踪、回溯。例如JIRA-666