Commit Message格式
1 | <type>(<scope>): <subject> |
Header
Header部分只有一行,包括三个字段:
type
(必需)
1 | # 主要type |
scope
(可选)- 用于说明commit影响的范围
- 格式为
项目名/模块名
subject
(必需)- commit目的的简短描述
Body
Body 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。
1 | More detailed explanatory text, if necessary. Wrap it to |
- 使用第一人称现在时,比如使用change而不是changed或changes。
- 应该说明代码变动的动机,以及与以前行为的对比。
Footer
Footer 部分只用于两种情况。
- 不兼容变动
如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。
1 | BREAKING CHANGE: isolate scope bindings definition has changed. |
- 关闭 Issue
1 | Closes #234 |
1 | Closes #123, #245, #992 |
Revert
还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。
1 | revert: feat(pencil): add 'graphiteWidth' option |
规范
- 将subject和body用一空白行分开
- subject限制在50个字以内
- subject首字母大写
- subject结尾不使用标点符号
- 使用命令语气
- body部分的长度限制在72字节内
- 用body来解释what和why
git-commit-plugin
https://marketplace.visualstudio.com/items?itemName=redjue.git-commit-plugin
在vscode里添加git-commit-plugin来辅助
commitizen
1 | # install |
然后使用git-cz
即可,或者git cz