安装
1. 安装并创建配置文件
//npm: npm install -D @commitlint/cli @commitlint/config-conventional//yarn: yarn add -D @commitlint/cli @commitlint/config-conventional
项目根目录创建 commitlint.config.js 文件,内容如下:
export default {extends: ['@commitlint/config-conventional'],rules: {// 自定义规则(可选)'type-enum': [2, // 错误级别:0=禁用,1=警告,2=错误'always', // 条件:always/never ['build', //对项目构建系统或外部依赖项的更改。例如,修改构建脚本、配置文件等。'chore',// 非业务性的任务和更改。通常用于修改构建过程、辅助工具的代码,或者进行一些不涉及用户功能的工作'ci', //对持续集成 (Continuous Integration) 配置文件和脚本的更改'docs',// 文档变更,包括但不限于 README 文件、文档生成器或注释的变更'feat',// 新功能的添加。通常伴随着用户功能或其他明显的变更'fix',// 修复 bug'perf',//改进性能的代码更改'refactor',// 代码重构,不是修复 bug 也不是添加新功能的代码更改'revert',// 撤销先前的提交'style',// 与代码风格相关的更改,例如空格、格式化等,而不涉及功能性代码更改'test',// 添加或修改测试 ],],'subject-max-length': [2, 'always', 72], // 提交信息最大长度 }, }
2. 配置 git hooks
//npm: # 安装 husky npm install --save-dev husky # 激活 git hooks npx husky install # 添加 commit-msg 钩子(已安装husky提交验证无效,注意检查commit-msg 钩子是否添加) echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg//yarn: # 安装 husky yarn add --dev husky # 激活 git hooks yarn husky install # 添加 commit-msg 钩子(已安装husky提交验证无效,注意检查commit-msg 钩子是否添加)
echo "yarn commitlint --edit \$1" > .husky/commit-msg
3. 配置 script prepare
在 package.json 中增加 prepare 脚本,用于在安装依赖时自动安装 husky。
{"scripts": {"prepare": "husky install"// other... } }
使用
提交格式
type(optional scope?): description //? 表示可选,不输入 scope 时可省略圆括号,注意冒号后面有空格 - type:提交的改动类型(如新增、修改、更新等) - optional scope:标识此次提交主要涉及到代码中哪个模块 - description:一句话描述此次提交的主要内容 type 用于说明 commit 的类别: ●build: 对项目构建系统或外部依赖项的更改。例如,修改构建脚本、配置文件等。 ●chore: 非业务性的任务和更改。通常用于修改构建过程、辅助工具的代码,或者进行一些不涉及用户功能的工作。 ●ci: 对持续集成 (Continuous Integration) 配置文件和脚本的更改。 ●docs: 文档变更,包括但不限于 README 文件、文档生成器或注释的变更。 ●feat: 新功能的添加。通常伴随着用户功能或其他明显的变更。 ●fix: 修复 bug。 ●perf: 改进性能的代码更改。 ●refactor: 代码重构,不是修复 bug 也不是添加新功能的代码更改。 ●revert: 撤销先前的提交。 ●style: 与代码风格相关的更改,例如空格、格式化等,而不涉及功能性代码更改。 ●test: 添加或修改测试。
重大修改
当仓库产生比较重大的修改时,例如删除了某个 API,或者改变了大量的 API,可以通过以下方式来表示:
type!
在提交信息的 type 后面添加 ! 符号,表示该提交是重大更改。如:
feat!: 新增了新的 API,移除了旧的 API