对于项目,日志内容应使用 ASCII 字符、中文或 emoji,以实现最大化的兼容性,方便进行兼容处理。

commit 包含三个部分:HeaderBodyFooter

<type>([scope]): <subject>
 
[body]
 
[footer]

示例:

feature(auth): increase length of new API key
 
the length is increased from 24 to 32 for new API keys
 
close #12

头部(Header)

头部只有一行,包含三个字段:类型、范围和主题。

全拼简拼描述
featurefeat新增特性
fixfix修复 bug
documentsdocs文档变动
stylestyle代码格式(不影响功能,例如空格、分号等格式修正)
refactorrefactor代码重构
performanceperf改善性能
testtest测试
buildbuild影响构建系统或外部依赖的更改(例如:gulp、npm、webpack)
continuous integrationci更改了 CI 配置文件和脚本
chorechore对构建过程或辅助工具和库的更改(不影响源文件、测试用例)
revertrevert撤销上一次的 commit
  • 对于破坏兼容性的更改,即会影响到依赖本项目的其他系统的更改,请在类型后面加上半角感叹号!」。
  • 主题务必不超过 72 个字符,且必须简洁明了。如果无法限制在 72 个字符内,请拆分提交。
  • 主题部分应以小写字母开头,专有名词首字母大写,缩略语大写,并且结尾不用句号。

主体(Body)

主题与正文之间应有一个空行。

如果内容简单,可以按照主题格式撰写。如果超过一行,应按照常规的段落格式。

首字母应大写,正确使用标点。可以有多行或多段,但每行不超过 72 个字符,行尾不出现空格,段落之间应用空行隔开。

feature!(api): limit array length to 256 elements
 
BREAKING: Array length limit is added to further limit request size. A
small number of existing apps may receive HTTP 413 "Payload too Large"
error.

脚注(Footer)

正文与脚注之间应有一个空行。

脚注主要用于记录不兼容的更改和关闭问题的操作。对于不兼容的更改,需要在脚注中进行描述,同时还需要在主体部分进行详细描述。如果关闭的问题是在追踪系统(如 GitHub)中的问题,需要在脚注中使用 Close #issue 格式进行描述。