<type>(<s"> <type>(<s"> <type>(<s">
前端工程化 词条目录
前端Wiki/前端工程化/深入/Git 协作流与提交规范

提交信息规范

提交信息是给自己和队友的“代码日记”。Conventional Commits 约定格式:<type>(<scope>): <subject>,type 固定几类(feat 新功能、fix 修复、docs 文档、style 格式、refactor 重构、test 测试、chore 杂务/构建)。

规范的价值不只是好看:工具能从规范提交自动生成 CHANGELOG、自动判定语义化版本(feat → 次版本、fix → 修订号、break → 主版本),这让发版从“人工定”变成“自动算”。

  • 格式:type(scope): 简述 —— type 决定语义,scope 标注模块,subject 一句话说清
  • 正文写“为什么”而不是“改了什么”(代码本身已说明 what)
  • 配合 commitlint + standard-version:自动生成 CHANGELOG 与版本号
Git
// 合格的提交信息
// feat(login): 添加手机号验证码登录
// fix(cart): 修复数量为 0 时仍可下单的问题
// refactor(api): 统一错误处理为拦截器方式
// chore(deps): 升级 vite 到 5.2.0

// 不合格的提交信息(无法自动生成 changelog)
// update(改了什么?哪个模块?)
// 修复 bug(哪个 bug?)
// wip(工作时禁止提交,要么写清楚要么别提交)

// commitlint.config.js —— 强制校验提交信息
module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [2, 'always', ['feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore']],
    'subject-max-length': [2, 'always', 72],   // 简述不超过 72 字
  },
};
本节要点Conventional Commits:type(scope): subject;规范提交让 CHANGELOG 与语义化版本自动生成。