编写规范清晰的 Commit Message,是使用 Git 过程中很重要的一环。合理的 Commit Message 可以让团队成员快速了解代码变更历史,方便代码审查与追踪Bug。
Commit Message 的格式
目前有多种 Commit Message 的写法,使用较多的是 Angular 团队的规范,继而演化出了 常规提交 。
git Commit Message 的每次提交都包含三个部分,Header、Body 和 Footer。
|
|
其中的 Header 是必须的,Body 和 Footer 可以省略。
Header
Header 是必填的内容,在 Header 中包含三部分内容,如下:
|
|
其中
Type
主要为以下几种类型的其中之一。
- feat: 新功能,表示向代码库中引入了一个新的功能。
- fix: 修复,表示修复了代码库中的错误。
- docs: 文档更新。
- style: 格式改进,不影响代码含义的更新,如空格、缩进、分号等。
- refactor: 重构,既不修正错误,也不增加功能的代码更改。
- perf: 性能优化,代码的更改可提高性能。
- test: 测试,添加新的或改正现有的测试。
- build: 影响构建系统或外部依赖项的更改(如 gulp,npm等)。
- ci: CI 配置文件的更改。
- chore: 其他非 src 和 test 目录的更改(如 .gitingore等)。
Scope
可选内容,主要用来描述改动影响的范围,一般为 项目名/模块名
,标识此次改动主要涉及到代码中的哪些模块。
Description
必填,对此次改动的简洁描述。
- 使用祈使句和现在时态,如 “add”、“change”。
- 首字母不要大写。
- 结尾不加句号。
Body
可选,针对本次 commit 的详细描述,使用祁使语句和现在时态,如 “add”、“change”。内容较多时需要注意合理换行。需要清晰的表达此次变动的范围以及可能影响的内容。
Footer
可选,Footer 只用于两种情况
不兼容变动
如果当前代码与上一个版本不兼容,则 Footer 部分已 BREAKING CHANGE 开头,后面是对变动的描述、以及变动理由和迁移方法。
关闭 Issue
如果当前 commit 针对某个 issue, 可以在 Footer 中关闭这个 issue。
|
|
提交工具
具体可以参考 Conventional Commits 的工具列表