项目中 Git 提交信息的规则,基于 Angular 的 Commit 规范。
1 | <header> // 消息头 |
一、消息头(header)格式
1 | <type>(<scope>): <short summary> |
上面的格式中 <type>
和 <summary>
字段是强制性的,<scope>
字段是可选的,下面会说明每个字段什么意思。
type
必须是以下类型之一:
- feat: 添加了一个新特性、新功能
- fix: 修了一个 Bug
- docs: 更新了文档(比如改了 Readme)
- style: 代码的样式美化,不涉及到功能修改(比如改了缩进)
- refactor: 一些代码结构上优化,既不是新特性也不是修 Bug(比如函数改个名字)
- perf: 优化了性能的代码改动
- test: 新增或者修改已有的测试代码,或者是测试相关的问题
- chore: 跟仓库主要业务无关的构建/工程依赖/工具等功能改动
<type>
的冒号后面需要保留一个空格scope
用于说明 commit 影响的范围,比如用户系统,日志相关等等,视项目不同而不同。summary
用一段简短的话总结commit的更改 - 以动词开头,使用第一人称现在时,比如
change
,而不是 changed 或 changes - 不要大写第一个字母
- 末尾没有点 (.)
二、消息体(body)格式
用于对此次 commit 提供更详细的解释,可以多行。像 summary
一样,使用第一人称现在时,比如 fix
,而不是 fixed 或 fixes
三、消息页脚(footer)格式
footer一般有两种情况:
- 1.破坏性更新
如果当前代码与上一个版本不兼容,则 footer
部分以 BREAKING CHANGE
开头,后面是对变动的描述、以及变动理由和迁移方法。
1 | BREAKING CHANGE: <breaking change summary> |
- 2.关闭 issue 或 pr
如果当前 commit 针对某个 issue 或者某个 pr ,那么可以在 footer
部分关闭。DEPRECATED
可以不写。
1 | DEPRECATED: <what is deprecated> |
四、撤销更改(Revert)
还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以 revert:
开头,后面跟着被撤销 commit 的 header
提交消息体(body)的内容应包含以下内容:
- 有关的 commit
SHA
值采用以下格式:This reverts commit <SHA>
- 详细描写 revert commit 的原因(可选)
1
2
3Revert: "feat: 增加用户删除功能"
This reverts commit df89c14c6084631574fdf879a57fbb243e82634a.