1. 安装依赖
npm install --save-dev husky @commitlint/config-conventional @commitlint/cli
2. 启用 Husky
npx husky install
npm pkg set scripts.prepare="husky install" # 自动初始化钩子
3. 配置提交信息规范
(1) 创建 .commitlintrc.js
module.exports = {extends: ['@commitlint/config-conventional'], // 使用 Angular 提交规范rules: {'type-enum': [ // 限定提交类型2,'always',['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore', 'revert']],'subject-case': [0] // 不限制主题大小写}
};
(2) 添加 commit-msg
钩子,下面的命令就是先创建.husky/commit-msg文件,然后在commit-msg里添加npx --no-install commitlint --edit "$1"这一行代码,如果用下面的代码添加不成功,可以手动添加
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
4. 提交示例
允许的提交格式:
git commit -m "feat: 添加登录功能" # 新增功能
git commit -m "fix: 修复按钮点击问题" # 修复 Bug
git commit -m "docs: 更新 README" # 文档变更
被拦截的提交格式:
git commit -m "随便写个提交" # 错误:缺少类型前缀
git commit -m "fix:abc" # 错误:类型后缺少空格和描述