commitlint:commitlint checks if your commit messages meet the conventional commit format.(commitlint检查提交消息是否符合常规提交格式)
场景
团队协作多人开发,规范git commit -m"..."
的提交信息。
使用
【第一步】安装commitlint
$ npm install --save-dev @commitlint/config-conventional @commitlint/cli
【第二步】根目录添加commitlint配置文件commitlint.config.js
module.exports = {extends: ["@commitlint/config-conventional"]}
【第三步】安装husky
# 能够在项目中方便添加 git hooks(即git 钩子),拦截git commit进行校验# Install Husky v6npm install husky --save-dev# oryarn add husky --dev# Activate hooksnpx husky install# oryarn husky install
【第四步】add hooks
执行以下3条命令,在根目录生成一个.husky文件夹,且文件夹下会自动生成一个commit-msg文件 文件中已经写有commitlint命令
echo '#!/bin/sh. "\$(dirname "\$0")/_/husky.sh"npx --no -- commitlint --edit ${1}' > .husky/commit-msgchmod a+x .husky/commit-msg
【第五步】commitlint配置,自定义commit提交内容规则
@commitlint/config常规
git commit -m格式: <type>[optional scope]: <description>[optional body][optional footer(s)]格式分为header body footer三个部分header# type:提交类型(必选)# optional scope:可选范围(改动了哪个模块,非必选)# description:提交描述(必选)body(非必选)本次提交的详细描述,修改原因,修改内容footer(非必选)影响,兼容
常用commit类型
feat: 新功能fix: 修复 Bugdocs: 文档修改perf: 性能优化revert: 版本回退ci: CICD 集成相关test: 添加测试代码refactor: 代码重构build: 影响项目构建或依赖修改style: 不影响程序逻辑的代码修改chore: 不属于以上类型的其他类型(日常事务)
// commitlint.config.jsmodule.exports = {extends: ["@commitlint/config-conventional"],// 这里定义的任何规则都将覆盖@commitlint/config常规中的规则"rules": {"type-enum": [2, 'always', ['feat', 'fix', 'docs', 'perf', 'revert', 'ci', 'test', 'refactor','build','style','chore']],}}
测试
$ git add .$git commit -m"commitlint配置修改"
提交的commitlint不规范,git会报错,提交不成功
重新提交
$git commit -m"fix:commitlint配置修改"
参考文档
commitlint
rules文档