找回密码
 立即注册
首页 业界区 安全 Commitlint 使用指南

Commitlint 使用指南

寇秀娟 2026-1-21 00:15:11
Commitlint 使用指南

什么是 Commitlint?

Commitlint 是一个 Git 提交信息检查工具,它可以帮助团队规范 Git 提交信息的格式,使提交历史更加清晰、易读。
为什么要使用 Commitlint?


  • 统一的提交格式:让团队成员遵循相同的提交规范
  • 清晰的提交历史:方便查看项目变更记录
  • 自动生成 Changelog:配合工具可自动生成版本更新日志
  • 更好的协作:让其他开发者快速理解每次提交的目的
Get start

安装依赖
  1. # npmnpm install -D @commitlint/cli @commitlint/config-conventional#yarnyarn add -D @commitlint/cli @commitlint/config-conventional#pnpmpnpm add -D @commitlint/cli @commitlint/config-conventional
复制代码
初始化Config文件
  1. echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js
复制代码
配置 commitlint.config.js
  1. module.exports = {  extends: ['@commitlint/config-conventional'],  rules: {    'type-enum': [      2,      'always',      [        'feat',     // 新功能        'fix',      // 修复bug        'docs',     // 文档更新        'style',    // 代码格式调整        'refactor', // 代码重构        'perf',     // 性能优化        'test',     // 测试相关        'chore',    // 构建/工具变更        'revert',   // 回退        'ci',       // CI/CD 相关        'build',    // 构建系统/依赖变更      ],    ],    'type-case': [2, 'always', 'lower-case'],    'type-empty': [2, 'never'],    'subject-empty': [2, 'never'],    'subject-full-stop': [2, 'never', '.'],    'header-max-length': [2, 'always', 100],  },};
复制代码
要使用 commitlint,需要设置 commit-msg 钩子.
配置 Husky
  1. npx husky init  echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg
复制代码
如果自动生成了.husky/pre-commit, 可以删除掉这个文件
提交信息格式
  1. ():
复制代码
类型 (type)

提交类型必须是以下之一:
类型说明示例feat新功能feat: add user login featurefix修复 Bugfix: resolve crash on app startupdocs文档更新docs: update READMEstyle代码格式调整(不影响逻辑)style: format code with prettierrefactor代码重构refactor: simplify authentication flowperf性能优化perf: optimize image loadingtest测试相关test: add unit tests for utilschore构建/工具变更chore: update dependenciesrevert回退之前的提交revert: feat: remove old featureciCI/CD 配置变更ci: configure github actionsbuild构建系统或依赖变更build: upgrade react native作用域 (scope)

作用域是可选的,用于说明本次提交影响的具体模块:
  1. feat(auth): add OAuth login supportfix(homepage): resolve image overflow issuestyle(components): format button styles
复制代码
描述 (subject)


  • 简洁描述本次提交的内容
  • 不超过 100 个字符
  • 不要以句号结尾
  • 使用小写字母
提交示例

✅ 正确示例
  1. # 新功能git commit -m "feat: add user profile page"# 带作用域git commit -m "feat(api): implement user authentication"# 修复 Buggit commit -m "fix: resolve app crash on iOS 15"# 文档更新git commit -m "docs: add installation guide"# 代码重构git commit -m "refactor: simplify navigation structure"# 多行提交(添加详细描述)git commit -m "feat: implement shopping cart- Add product selection functionality- Implement quantity adjustment- Add price calculation feature"
复制代码
❌ 错误示例
  1. # 类型不在允许范围内git commit -m "add: new feature"# 描述为空git commit -m "feat:"# 以句号结尾git commit -m "feat: add new feature."# 类型大写git commit -m "Feat: add new feature"# 描述超过 100 字符git commit -m "feat: add a very very very very very very very very very very very long description"
复制代码
常见错误与处理

1. 类型错误
  1. ✖ type must be one of [feat, fix, docs, style, refactor, perf, test, chore, revert, ci, build]
复制代码
解决方法:使用允许的类型之一
2. 描述为空
  1. ✖ subject may not be empty
复制代码
解决方法:添加提交描述
3. 类型大写
  1. ✖ type must be lower-case
复制代码
解决方法:使用小写类型
4. 描述以句号结尾
  1. ✖ subject may not end with full stop
复制代码
解决方法:移除结尾的句号
5. 描述过长
  1. ✖ subject may not be longer than 100 characters
复制代码
解决方法:缩短描述或使用多行提交
多行提交格式

如果需要添加更详细的描述,可以使用多行格式:
  1. git commit -m "feat: add payment feature- Implement credit card payment- Add payment confirmation screen- Integrate with payment gateway APICloses #123"
复制代码
修改错误的提交信息

如果提交信息不符合规范,可以使用以下方法修改:
修改最后一次提交
  1. git commit --amend -m "fix: correct typo in user name"
复制代码
修改历史的提交
  1. # 交互式变基git rebase -i HEAD~n# 将需要修改的提交标记为 edit# 保存后修改提交信息git commit --amend -m "new message"git rebase --continue
复制代码
配置说明

按照配置则项目已配置以下规则:

  • ✅ 类型必须是允许的类型之一
  • ✅ 类型必须小写
  • ✅ 类型不能为空
  • ✅ 描述不能为空
  • ✅ 描述不能以句号结尾
  • ✅ 描述不超过 100 字符
参考资源


  • Conventional Commits
  • Commitlint 官方文档

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册