提交信息规范检查
commitlint 按配置校验 commit message,常配合 Conventional Commits 和 commit-msg 钩子使用。它只检查信息格式,不检查代码内容。
npx commitlint --edit
npx commitlint --from HEAD~1 --to HEAD
npx commitlint --from origin/main --to HEAD
echo "feat: add search" | npx commitlint --stdin
npx commitlint --print-config
commitlint.config.js:
export default {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'refactor', 'test', 'chore', 'ci']],
'header-max-length': [2, 'always', 100],
'scope-empty': [0]
}
};
--edit 读取 .git/COMMIT_EDITMSG;在 commit-msg 钩子里用它才能校验当前提交。--from/--to 的范围在浅克隆或合并提交上可能不完整;CI 要 fetch 足够历史。type;格式不对会直接加载失败。defaultIgnores 或自定义规则。pre-commit / lefthook — 安装 commit-msg 钩子git — 提交与历史范围semantic-release — 消费提交信息发版