Git提交日志格式规约
accttodo 8/3/2022 运维版本控制Git
# 基本格式
<type>(<scope>): <subject> //header部分
<BLANK LINE> //空行
<body> //body部分
<BLANK LINE> //空行
<footer> //footer部分
1
2
3
4
5
2
3
4
5
header部分必需,body 和 footer 部分可选。 <subject>, <body>, <footer>
内容默认使用中文。
# header部分
<type>
取值
- feat/add 功能新增
- fix 错误修复
- docs 文档更改(只涉及文档的新增或修改)
- test 测试更改(只涉及测试的新增或修改)
- chore 构建过程或辅助工具的更改(只涉及构建或编译的新增或修改)
- style 代码格式化(只涉及代码格式的新增或修改,例如:空格、分号等)
- refactor 代码重构(只涉及代码的重构,不改变原功能,例如:变量重命名、if-else重写等)
- perf 代码优化,性能提升,或者用户体验提升(例如:时间复杂度从 O(n) 优化到 O(1) 的提升)
- merge 代码合并(需描述出从哪个分支合并到哪个分支)
- revert 回退到上一个版本(需描述出回退的原因)
<scope>
取值
指明修改内容的范围,可以是空。
<subject>
取值
用于概括一次提交行为囊括的内容
- 时态方面使用一般现在时,不要用过去时态。虽然查看 log 时,log 内容本身都发生在过去,然而对于主题来说,使用现在时的时态更简洁明确,并且更易达成一致性。
- 句式使用祈使句式。即一般情况不要增加主语。因为在绝大情况下,主语都是作者「我」。
- 句尾无需结束标点;如果使用英语,则句首同样无需大写。同样是因为主题(或称标题)本身不用形成完整的句子。
# body部分
日志的内容主体 body 用来描述详细的提交内容,可写、可不写。
# footer 部分
日志的内容页脚 footer 用来描述一些补充信息,可写、可不写。