天天看点

Commitizen学习(一)入门

规范的Git提交说明

  • 提供更多的历史信息,方便快速浏览
  • 可以过滤某些

    commit

    ,便于筛选代码

    review

  • 可以追踪

    commit

    生成更新日志
  • 可以关联issues

Git

提交说明结构

Git

提交说明可分为三个部分:

Header

Body

Footer

<Header> <Body> <Footer>      

Header

Header

部分包括三个字段

type

(必需)、

scope

(可选)和

subject

(必需)。

<type>(<scope>): <subject>      
Vue源码的提交说明省略了

scope

1、type

type

用于说明 

commit

 的提交性质。

描述
feat 新增一个功能
fix 修复一个Bug
docs 文档变更
style 代码格式(不影响功能,例如空格、分号等格式修正)
refactor 代码重构
perf 改善性能
test 测试
build 变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等)
ci 更改持续集成软件的配置文件和package中的scripts命令,例如scopes: Travis, Circle等
chore 变更构建流程或辅助工具
revert 代码回退

2、scope

scope

说明

commit

影响的范围。

scope

依据项目而定,例如在业务项目中可以依据菜单或者功能模块划分,如果是组件库开发,则可以依据组件划分。

提示:

scope

可以省略。

3、subject

subject

commit

的简短描述。

Body

commit

的详细描述,说明代码提交的详细说明。

Footer

如果代码的提交是不兼容变更或关闭缺陷,则

Footer

必需,否则可以省略。

Commitizen

commitizen是一个帮助规范commit message的工具,它可以帮我们控制 commit 的格式,并让提交复杂格式时比

git commit -m

更加容易,使用它提交git commit的样子如下图:

Commitizen学习(一)入门

基本使用:

安装 commitizen :

npm install -g commitizen      

安装好后,需要安装一个adapter来定义希望使用的 commit message 格式。如果使用上面的 anjular 的规范,可以使用

cz-conventional-changelog

这个 adapter 。通过 commitizen 提供的命令行工具去初始化项目中希望使用的 adapter 。在项目目录下执行:

commitizen init cz-conventional-changelog --save-dev --save-exact      

这个命令会帮我们在项目中安装 cz-conventional-changelog 并在 package.json 中添加如下内容:

"config": {
  "commitizen": {
    "path": "./node_modules/cz-conventional-changelog"
  }
}      

之后,全局安装了 commitizen 的朋友就可以通过

git cz

命令代替

git commit

命令,从而调出如下图的界面,根据界面提示输入 commit 信息并提交。

Commitizen学习(一)入门

参考