Git提交信息的格式要满足如下/^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|dep)(\(.+\))?: .{1,50}/正则表达式

regex

示例

  • 如下提交信息出现在Features大标题,compiler次标题下:

    feat(compiler): add 'comments' option

    展示如下:

    Features
    
    compiler: add 'comments' option
  • 如下提交信息出现在Bug Fixes大标题,v-model次标题下,跟随着#28问题的链接:

    fix(v-model): handle events on blur
    
    close #28
  • 如下提交信息出现在Performance Improvements大标题,core次标题下,BREAKING CHANGE下一行跟随着中断性变更的理由:

    perf(core): improve vdom diffing by removing 'foo' option
    
    BREAKING CHANGE: The 'foo' option has been removed.
  • 如果以下提交和提交667ecc1在同一版本下,则该提交信息不会出现在变更日志中。如果没有在同一版本下,该提交将出现在“Reverts”大标题下

    revert: feat(compiler): add 'comments' option
    
    This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

完整提交信息的格式

提交信息包含标题行、主体内容和页脚注释,其中,标题行包含修改类型type、修改影响的范围(作用域)scope、修改内容概述subject

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

以上,首行是标题行,标题行是必填的,标题行的作用域scope是可选的。

Revert

如果某个提交回滚到上一次提交,提交信息应该以revert:开始,后续是该提交的标题行。

主体内容应该写"This reverts commit <hash>",其中,<hash>指向要回滚的提交。

Type

如果提交信息的标题行前缀是featfixperf,则该提交信息会出现在更新日志中。其中,中断性变更永远都会出现在更新日志中,不论标题行前缀是什么。

其它前缀用哪个,需要根据情况自行酌办。推荐使用的前缀docs, chore, style, refactortest,这些前缀的提交信息不会出现在更新日志中。

Scope

作用域可以是任何内容。

如文章开头示例中的core,compiler, ssr, v-model, transition...

Subject

概述是当前提交的简要描述

  • 使用单数、现在时,如“change",而不是"changed"过去式,也不是"changes"。
  • 首字母不要大写
  • 不要以"."结束

Body

Subject一样,使用单数、现在时,如“change",而不是"changed"过去式,也不是"changes"。

主体内容应该包括更新的动机,以及这次提交与以前的提交的对比。

Footer

页脚注释应该包含关于中断性变更的任何信息,也是标注此提交关闭了哪条GitHub问题的地方。

中断性变更应该以单词BREAKING CHANGES: 开头,":"后跟随一个空格或两个换行符。紧随`BREAKING CHANGES: 后的其余提交消息将用于标注解决了什么问题。


米花儿团儿
1.3k 声望75 粉丝