Commitlint &husky

一、Commitlint安装#

https://github.com/conventional-changelog/commitlint/

1.1、Commitlint 是什么#

我们运行 git commmit -m 'xxx' 时,用来检查 xxx 是否满足固定格式的工具。

1.2、安装#

npm init

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

1.3、生成配置文件commitlint.config.js#

当然也可以是 .commitlintrc.js

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

在当前目录进行测试

echo "build: test"|npx commitlint

二、husky#

2.1、husky安装#

还要为 git 配置 husky ,对 git 的 commit 操作进行校验。

husky继承了Git下所有的钩子,在触发钩子的时候,husky可以阻止不合法的commit,push等等

npm install husky --save-dev

在 package.json 中引入 husky

// package.json
{
  ...
  ...
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }  
  }
}

这段配置告诉了git hooks,

1、当我们在当前项目中执行 git commit -m '测试提交' 时将触发commit-msg事件钩子并通知husky
2、执行 commitlint -E HUSKY_GIT_PARAMS命令,也就是我们刚开始安装的./node_modules/.bin/commitlint,

3、它将读取commitlint.config.js配置规则并对我们刚刚提交的测试提交这串文字进行校验,若校验不通过,则在终端输出错误,commit终止。

三、提交规范#

3.1、提交规范#

推荐我们使用 config-conventional 配置去写 commit

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

git commit -m <type>[optional scope]: <description>

type :用于表明我们这次提交的改动类型,是新增了功能?还是修改了测试代码?又或者是更新了文档?

optional scope:一个可选的修改范围。用于标识此次提交主要涉及到代码中哪个模块。

description:一句话描述此次提交的主要内容,做到言简意赅。

3.2、常用的 type 类型#

类型 描述
build 编译相关的修改,例如发布版本、对项目构建或者依赖的改动
chore 其他修改, 比如改变构建流程、或者增加依赖库、工具等
docs 文档修改
feat 新特性、新功能
fix 修改bug
perf 优化相关,比如提升性能、体验
refactor 代码重构
revert 回滚到上一个版本
ci 持续集成修改
style 代码格式修改, 注意不是 css 修改
test 测试用例修改
  • 例子
git commit -m 'fix(account): 修复xxx的bug'
git commit -m 'refactor: 重构整个项目'
posted @   xine  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
主题色彩