Git commit规范
commit messga的格式
commit message分为三部分:Header
、Body
和Footer
。
格式如下:
[type]([scope]): [subject]
// 空一行
[body]
// 空一行
[footer]
注意
[type]([scope]): [subject]
的冒号后面,是有一个空格的。
[body]
、[footer]
部分是可选的,有需要才写。
Header
Header部分包括三个字段:type
(必需)、scope
(可选)和subject
(必需)。
type
type用于标识commit的类型,一般有以下几种类型:
- feat 新功能
- fix 修复bug
- style 修改代码格式(不影响代码运行的改动)
- chore 与代码功能逻辑无关、构建过程或者辅助工具的改动
- docs 编写文档、补充注释
- refactor 重构代码
- test 单元测试等
scope
scope用于标识提交的代码所影响的范围。
比如修复Gitlab上的issue记录的bug,可以把issue id作为scope。
subject
subject是一个简短的描述,用于说明本次commit的目的。有以下几个要求:
- 字符长度不要超过50
- 以动词开头
- 结尾不加
.
或。
Body
body用于详细说明本次commit的相关情况。可进行换行书写。
以下是body
示例:
本次功能的优化,有以下几个点
- 修复了某问题,避免引起某现象误导用户
- 改变了某功能逻辑,修改后,功能的代码逻辑更加清晰,如有疑问,请咨询xxx
注意以下两点:
- 使用第一人称进行描述
- 说明修改代码的动机,与旧代码有什么不同
Footer
footer 用于以下两种特殊情况,一般情况下是不用书写的。
不兼容的代码变动
footer部分以BREAKING CHANGE:
开头,后面进行变动的描述和注意事项。
BREAKING CHANGE: 修改了工具XX暴露方法。
新版工具需要使用 Tool.XX 的方式进行调用。
关闭Issue
当前commit的修改,是针对某个issue,则使用以下格式进行说明。
Close #Issue ID
比如Close #79
表示,关闭 ID 为 79
的 Issue。