Git Commit Message提交规范
1. 简述
关于 Git message 的写法规范社区中有很多种, 目前使用较为广泛的是 Angular 规范。
在 Angular 规范中, 每次提交, Commit message 都包括三个部分: Header、Body 和 Footer,下面进行详细介绍。
2. 格式介绍
<type>(<scope>):<subject> # header部分
// 空一行
<body> # body部分
// 空一行
<footer> # footer部分
注意事项:
- 这三个部分中, Header 是必须的, Body 和 Footer 可以省略。
- 不管哪个部分,为了在输出 log 时的美观,任何一行的都不得超过 72 个字符。
3. 各部分部分介绍
Header:
Header 部分只有一行, 包括三个字段: type(必须)、scope(可选)、subject(必须);
-
type(必填):
type 用于说明 commit 的类型, 在 Angular 规范中,只允许7种常用类型和一种特殊类型(revert):feat: 新功能 (feature) fix: 修补 bug docs: 文档 (ocumentation) style: 格式 (不影响代码运行) refactory: 重构 (既不是新增功能, 也不是修改 bug 的代码改动) test: 增加测试 chore: 构建过程或辅助工具的变动 revert: 撤销以前的 commit; header 部分需要跟被撤销 Commit 的 Header
-
scope:
scope 用于说明 commit 影响的范围, 比如说数据层、控制层、视图层等等。 -
subject:
subject 是 commit 的简短描述, 不超过 50 个字符。
注意事项:
以动词开头, 使用第一人称现在时,比如 change 而不是changed或者 changes 第一个字母小写 结尾不加句号
body:
body 部分是对本次 commit 的详细描述,可以分为多行。
footer:
在很多情况下, 是不使用这部分的内容的, 但是在下面两种情况下,回使用到 footer:
1.不兼容变动说明:如果当前代码与上一个版本不兼容,则 footer 部分需要使用 BREAKING CHANGE 开头,后面是对变动的描述以及变动理由和变动方法。
2.关闭Issue:如果当前 commit 是针对某个或者某几个issue,可以在footer 部分关闭issue。
关闭单个问题:
Closes #123
关闭多个问题:
Closes #123, #234, #345