关于 conventional-commits
帮助开发者采用 Conventional Commits 编写结构化提交信息的指南。它将提交类型与语义化版本变更、变更日志和自动发布流程关联起来,并说明格式、破坏性变更及 AI 归属标注。
主要功能
- 01按类型规范提交信息
- 02将提交类型对应版本变更
- 03支持变更日志与发布自动化
- 04标记破坏性变更与问题引用
- 05注明 AI 协助并使用 signoff
适用场景
- 01统一团队 Git 提交记录
- 02按提交内容生成变更日志
- 03依据提交类型触发版本发布
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tigrisdata/ skills --skill conventional-commits安装后在 Claude Code 中输入/conventional-commits确认已加载。
附带文件metadata.jsonREADME.md
详细介绍
Conventional Commits
用于版本控制的结构化提交消息格式,可提供清晰易读的项目历史记录。
概述
Conventional Commits 规范提供:
- 自动生成变更日志 - 工具可以解析提交记录并生成 CHANGELOG.md
- 语义化版本控制 - 提交类型对应版本升级幅度(feat → 次版本,breaking → 主版本)
- 清晰的项目历史记录 - 标准化格式让 git log 更易读
- 自动发布 - CI/CD 可以根据提交类型触发发布
快速参考
| 类型 | 用途 | 版本升级幅度 |
|---|---|---|
feat | 新功能 | MINOR |
fix | 修复错误 | PATCH |
docs | 仅修改文档 | PATCH |
style | 格式调整,不改变逻辑 | PATCH |
refactor | 重构代码,不改变行为 | PATCH |
perf | 性能改进 | PATCH |
test | 添加或更新测试 | PATCH |
build | 构建系统或依赖项 | PATCH |
ci | CI/CD 配置 | PATCH |
chore | 维护工作,不影响用户 | PATCH |
revert | 撤销先前的提交 | PATCH |
格式
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
规则:
- 必须填写类型
- 作用范围可选——使用括号标明受影响的部分:
(api)、auth)、parser) - 必须填写描述
- 描述应简洁、使用祈使语气、全小写,且末尾不加句号
- 正文和页脚均为可选
- 正文前需空一行,与主题分隔
- 正文每行不超过 72 个字符
示例
feat: add user authentication
Implement JWT-based authentication with login/logout endpoints.
Includes password hashing and session management.
Closes: #123
fix(api): handle null response from server
Previous implementation crashed when server returned null.
Now returns empty result set.
Assisted-by: GLM 4.6 via Claude Code
feat(storage)!: change bucket listing API
BREAKING CHANGE: bucket list now returns async iterator
instead of array. Update all callers to use for-await.
refactor(core): simplify error handling
Consolidate duplicate error handlers into single utility.
No behavior changes - internal cleanup only.
revert: feat(auth): add OAuth support
This reverts commit 8b5a1c2. OAuth provider changed
their API and we need to redesign integration.
重大变更
可以通过以下两种方式标明重大变更:
选项 1:在类型或作用范围后添加 !
feat(api)!: remove deprecated endpoint
选项 2:添加 BREAKING CHANGE: 页脚
feat(api): remove deprecated endpoint
BREAKING CHANGE: endpoint no longer exists. Use newEndpoint instead.
AI 署名
AI Agent 必须在提交页脚中注明其协助:
Assisted-by: [Model Name] via [Tool Name]
示例:
Assisted-by: GLM 4.6 via Claude CodeAssisted-by: Claude Opus 4.5 via claude.ai
常见错误
| 错误 | 错误原因 | 正确写法 |
|---|---|---|
Added login feature | 使用过去时,且首字母大写 | feat: add login feature |
fix bug. | 末尾有句号 | fix: resolve login error |
update | 缺少类型 | chore: update dependencies |
feature:add-auth | 冒号后缺少空格 | feat: add authentication |
FEAT: big change | 类型使用大写 | feat: add authentication |
| 描述跨多行且无空行 | 缺少分隔 | 在主题后添加空行 |
正文指南
- 内容:说明变更的动机(代码注释则描述 HOW)
- 对比:解释 WHY 和 WHAT,而不是代码细节
- 为提高 git log 的可读性,每行不超过 72 个字符
feat(summarization): add support for nested bullet points
Previous implementation only flattened all content. Now preserves
hierarchy by respecting indentation levels. Users can now create
structured summaries with parent-child relationships.
Closes: #456
页脚指南
页脚用于:
- 重大变更:
BREAKING CHANGE: detailed explanation - 问题引用:
Closes: #123、Fixes: #456、Refs: #789 - AI 署名:
Assisted-by: Model via Tool
多个页脚之间用空行分隔:
feat: add batch upload
Implements multipart upload for large files.
BREAKING CHANGE: upload() signature changed - now requires options object
Closes: #123
Assisted-by: GLM 4.6 via Claude Code
Git 提交标志
必需标志: 提交时始终使用 --signoff:
git commit --signoff -m "feat: add user authentication"
--signoff 标志会在提交消息中添加 Signed-off-by 尾注,表明提交者已确认该提交符合开发者来源证明(DCO)。
测试提交
提交前,请确认:
- 类型来自允许的列表
- 描述使用祈使语气(add、fix、update)
- 描述为全小写
- 描述末尾没有句号
- 使用
!或页脚标明重大变更 - 已注明 AI 署名(如适用)
- 正文解释 WHY,而非 HOW
- 使用
--signoff标志
评论
支持 Markdown