Skip to content

Git Commit Lint ​

1. 安装依赖 ​

bash
pnpm add -D @commitlint/cli @commitlint/config-conventional husky

2. 配置 package.json ​

在 package.json 中补充:

json
{
  "scripts": {
    "prepare": "husky"
  }
}

prepare 用来安装 Husky。

3. 新建 commitlint.config.js ​

js
export default {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [
      2,
      'always',
      [
        'build',
        'chore',
        'ci',
        'docs',
        'feat',
        'fix',
        'perf',
        'refactor',
        'revert',
        'style',
        'test',
      ],
    ],
    'type-case': [2, 'always', 'lower-case'],
    'type-empty': [2, 'never'],
    'subject-empty': [2, 'never'],
    'subject-case': [0],
    'subject-full-stop': [2, 'never', '.'],
    'header-max-length': [2, 'always', 100],
    'body-leading-blank': [2, 'always'],
    'footer-leading-blank': [2, 'always'],
  },
};
提交类型说明
  • build:构建配置、依赖、打包流程
  • chore:杂项维护
  • ci:CI 配置
  • docs:文档变更
  • feat:新增功能
  • fix:修复问题
  • perf:性能优化
  • refactor:重构
  • revert:回滚提交
  • style:格式调整,不改逻辑
  • test:测试相关

4. commit-msg:校验提交信息 ​

新建 .husky/commit-msg 文件,内容如下:

bash
pnpm exec commitlint --edit "$1"

5. 给文件执行权限 ​

bash
chmod +x .husky/commit-msg

6. 验证 ​

bash
# 合法提交
git commit -m "feat: init project"

# 不合法提交
git commit -m "update code"

后续:接入 lint-staged ​

1. 安装 ​

bash
pnpm add -D lint-staged

2. 配置 .lintstagedrc ​

以自动格式化为例

json
{
  "*": "prettier --write --ignore-unknown"
}

3. .husky/pre-commit:在提交前处理暂存文件 ​

新建 .husky/pre-commit 文件,内容如下:

bash
pnpm exec lint-staged

基于 MIT 许可发布