SuperAPI AI 工具集

commits

编程与开发

查看项目

更新于 10-15 18:21

技能介绍

用途

Conventional Commits 是一套结构化提交信息规范,旨在让提交历史可被机器解析,从而支持自动生成变更日志(CHANGELOG)和语义化版本(SemVer)管理。本技能提供该规范的完整参考,包括格式、类型、破坏性变更标记、校验规则及配套工具。

主要能力

  • 提交格式:定义 <type>[optional scope]: <description> 结构,可选正文与页脚。
  • 常用类型:feat(新功能,MINOR)、fix(修复,PATCH)、docs、style、refactor、perf、test、build、ci、chore、revert 等。
  • 破坏性变更:通过 ! 或 BREAKING CHANGE: 页脚标记,触发 MAJOR 版本升级。
  • SemVer 映射:fix → PATCH,feat → MINOR,BREAKING CHANGE 或 ! → MAJOR;破坏性变更覆盖类型。
  • 变更日志集成:提交类型直接映射到变更日志章节(如 feat → Added,fix → Fixed)。
  • 自动化工具:conventional-changelog、semantic-release、release-please 可解析提交、生成 CHANGELOG、确定版本号并自动发布。
  • 规范规则:明确 MUST(必须)与 MAY(可选)条款,包括类型前缀、冒号空格、描述位置、破坏性变更大写等。
  • Git 配置:支持提交模板(git config commit.template .gitmessage)与预提交校验脚本。
  • 代理工作流:要求代理在提出分支名、提交信息或 PR 描述前,必须检查 git status 与 git diff,基于完整变更集输出。

使用方式

  1. 按格式编写提交信息,例如:feat(auth): add OAuth2 support。
  2. 破坏性变更使用 ! 或页脚,例如:feat!: send email when product shipped 或 BREAKING CHANGE: ...。
  3. 配置 Git 提交模板:git config commit.template .gitmessage。
  4. 使用 commitlint 校验提交信息,commitizen 交互式生成,conventional-changelog 生成变更日志,semantic-release 或 release-please 自动化发布。
  5. 代理工作流步骤:git status --short → git diff → git diff --staged → 基于完整变更集提出分支名、提交信息与 PR 描述。

适用场景

  • 团队需要统一提交规范,提升历史可读性。
  • 自动化生成变更日志与版本发布。
  • 代理或开发者需要根据实际变更生成结构化提交信息与 PR 描述。

限制

  • 规范本身不强制所有贡献者使用,可通过 squash 合并由维护者统一编写。
  • 错误类型在合并前可用 git rebase -i 修正,发布后自动化工具会遗漏该提交。
  • 禁止使用模糊信息(如 "fix stuff"、"update"、"wip"),禁止混合无关变更,禁止遗漏破坏性变更标记,禁止使用非标准类型(除非团队同意),禁止遗漏描述与正文间的空行。
  • 官方规范链接:https://www.conventionalcommits.org/en/v1.0.0/ ;语义化版本:https://semver.org/spec/v2.0.0.html 。
  • 模板文件:assets/commit-msg.template、assets/validate-commit-msg.sh。