Commitlint学习体会

238 阅读2分钟

概述

为了后期协作以及处理Bug时会更加方便 引入commit规范,每次commit时,commitlint会用在git的hook回调中,最简单的就是和 husky一起使用;commitlint 检查您的提交消息是否符合常规提交格式。

使用commitlint可以便于通过允许人们探索更有条理的提交历史

使用

1、安装

需要先保证安装过依赖 husky

npm install --save-dev husky@4.2.5

安装@commitlint/config-conventional @commitlint/cli

npm install --save-dev @commitlint/config-conventional @commitlint/cli

2、配置

生成配置文件commitlint.config.js,当然也可以是 .commitlintrc.js

echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js

在husky的配置加入CommitlIint配置,v1.0.1版本以后为HUSKY_GIT_PARAMSv0.14.3GIT_PARAMS

"husky": {
    "hooks": {
      "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
    }
  },

3、小测试

可以看到格式不正确,报错

4、定制提交规范

提交格式:: (注意冒号后面有空格)

常用的type类别

  • upd:更新某功能(不是 feat, 不是 fix)

  • feat:新功能(feature)

  • fix:修补bug

  • docs:文档(documentation)

  • style: 格式(不影响代码运行的变动)

  • refactor:重构(不是新增功能,也不是修改bug的代码变动)

  • test:增加测试

  • chore:构建过程或辅助工具的变动

示例:

git commit -m 'feat: 增加了XXX功能'
git commit -m 'bug: 修复了xxx功能'

subject:是commit目的的简短描述,可以做一些配置,比如最大长度限制。

可以看到触发了package.json中配置的husky中的pre-commit钩子,执行了npm version

然后触发了commit-msg中配置的commitlint的检查,这里的bug并没有加到type中,所以报错

现在,我们在配置文件commitlint.config.js中写一些rules,把bug的type写进去

关于rule的配置说明

rule配置说明

::rule由name和配置数组组成,如:'name:[0, 'always', 72]',数组中第一位为level,可选0,1,2,0为disable,1为warning,2为error,0表示禁用规则,第二位为应用与否,可选always|never,never表示反转规则,第三位该rule的值。

这里先使用错误的提交方式:

git commit -m "hello"

可以看到这里报错了

然后使用正确的提交方式

git commit -m "bug: 修复了一点点bug"

可以看到commit成功

体会

commitlint可以帮助我们在commit的时候进行检查,对我们的提交更加规范化,有利于养成规范化的提交习惯