目前 Commit Message 规范比较常见的有 Angular 团队的规范,并由此衍生出了 Conventional Commits Specification,可以参照此 Specification 约定 Commit Message 格式规范。
<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>
大体分三行:
【标题行】必填, 描述主要修改类型和内容。
【主题内容】描述为什么修改, 做了什么样的修改, 以及这么做的思路等等。
【页脚注释】放 Breaking Changes 或 Closed Issues
其中 type 是 Commit 的类型,可以有以下取值
type | 值 |
feat | 新特性 |
fix | 修改 bug |
refactor | 代码重构 |
docs | 文档更新 |
style | 代码格式修改 |
test | 测试用例修改 |
chore | 其他修改, 比如构建流程, 依赖管理 |
其中 scope 表示的是 Commit 影响的范围,比如 ui,utils,build 等,是一个可选内容。
其中 subject 是 Commit 的概述,body 是 Commit 的具体内容。
fix: correct minor typos in codesee the issue for details on typos fixed.Refs #133
Commit Message 可以在 git 中配置模板,这样可以在 vim 中展示出模板,另外可有工具帮助我们生成和约束 Commit Message,例如 commitizen/cz-cli