统一的 Git 提交信息规范能大幅提升代码历史的可读性,配合 AI 工具自动生成,零学习成本。

规范总览

格式

1
2
3
4
5
6
<emoji> <type>(<scope>): <subject>

- <body 行1>
- <body 行2>

<footer>

示例

1
2
3
4
5
6
✨ feat(api): 添加用户登录接口

- 新增 JWT 认证流程,包含 token 刷新和过期处理。
- 使用 Redis 缓存 session 提升性能。

Closes #42
1
2
3
🐛 fix(components): 修复日期选择器样式错乱

- Safari 下 flex 布局未正确渲染,改用 grid 布局替代。
1
📝 docs: 更新 API 文档

Type 与 Emoji 映射

Emoji Type 说明
feat 添加新功能
🐛 fix 修复 bug
📝 docs 对文档进行修改
♻️ refactor 代码重构
perf 提高性能的代码修改
🧑‍💻 dx 优化开发体验
🔨 workflow 工作流变动
🏷️ types 类型声明修改
🚧 wip 工作进行中
test 测试用例添加及修改
🔨 build 构建系统或依赖变更
👷 ci CI 配置变更
chore 其它杂项修改
⬆️ deps 依赖项修改
🔖 release 发布新版本

详细规则

Subject(必填)

  • 不超过 50 个字符
  • 使用祈使句,如"添加"而非"添加了"
  • 结尾不使用句号

Body(可选)

  • 每行不超过 72 个字符
  • 详细描述更改的原因,而非"做了什么"
  • 若无复杂逻辑可省略

Footer(可选)

  • 引用 Issue:Closes #123
  • 重大变更(Breaking Change)在此说明
  • 若无则省略

配置方式

1. VSCode(完整配置)

打开 VSCode 命令面板(Cmd + Shift + P),执行 Preferences: Open User Settings (JSON),在 settings.json 中添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"github.copilot.chat.localeOverride": "zh-CN",
"github.copilot.chat.commitMessageGeneration.instructions": [
{
"text": "使用简体中文。在 body 中列出 CODE CHANGES 区域出现的每一个文件,绝对不许遗漏任何一个。读到了几个文件就写几行。"
},
{
"text": "格式:第一行 emoji type(scope): 主题。空一行。后面每行:- 文件路径: 变更说明。Subject 不超过 50 字、祈使句、无句号。Body 每行不超过 72 字。"
},
{
"text": "相似文件的同类修改可合并为一行:- a.vue, b.vue: 统一调整按钮样式。但合并后仍必须覆盖所有文件,不能少。只显示文件名即可。"
},
{
"text": "可用 emoji + type:✨feat 🐛fix 📝docs ♻️refactor ⚡perf 🧑‍💻dx 🔨workflow 🏷️types 🚧wip ✅test 👷ci ❓chore ⬆️deps 🔖release。scope 多模块用 *"
}
]

配置好之后,在 VSCode 源码管理面板(Ctrl + Shift + G)写提交信息时,Copilot 会自动输出符合规范的提交信息。

2. Claude Code(完整配置)

~/.claude/CLAUDE.md(全局)或项目根目录的 CLAUDE.md(项目级)中添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
---
alwaysApply: true
scene: git_message
---

# Git 提交信息规范

- 所有 git commit message 必须使用简体中文。
- 严格使用以下格式输出:`<emoji> <type>: <中文简短描述>`
- 只允许使用以下类型与前缀:

- `✨ feat: 添加新功能`
- `🐛 fix: 修复 bug`
- `📝 docs: 对文档进行修改`
- `♻️ refactor: 代码重构`
- `⚡ perf: 提高性能的代码修改`
- `🧑‍💻 dx: 优化开发体验`
- `🔨 workflow: 工作流变动`
- `🏷️ types: 类型声明修改`
- `🚧 wip: 工作进行中`
- `✅ test: 测试用例添加及修改`
- `🔨 build: 构建系统或依赖变更`
- `👷 ci: CI 配置变更`
- `❓ chore: 其它杂项修改`
- `⬆️ deps: 依赖项修改`
- `🔖 release: 发布新版本`

- 需要多行时,Body 部分每行以 `- ` 开头;第一行摘要和 Footer 不加。
- 第一行是摘要,后续行是详细说明(每行 ≤ 72 字符)。

- **重要约束**:最终输出只包含纯文本形式的 commit message,严禁使用 Markdown 代码块包裹,严禁包含任何解释性文字。

3. Hermes Agent

Hermes Agent 会自动加载 ~/.claude/CLAUDE.md 中的提交规范,生成提交信息时遵循相同的 emoji + type 格式。

使用效果

配置后,在 VSCode 源码管理面板写提交信息时,Copilot 会自动输出符合规范的提交信息:

1
2
3
4
5
6
7
# 输入:
添加登录页面

# Copilot 输出:
✨ feat(pages): 添加用户登录页面

- 实现手机号+验证码登录流程,包含表单校验和错误提示。

在 Claude Code 中运行 claude -p "提交当前更改" 也会生成符合规范的提交信息。

常见场景速查

场景 写法
新功能 ✨ feat(api): 添加商品搜索接口
修 Bug 🐛 fix(cart): 修复数量加减按钮失效
改文档 📝 docs: 更新部署说明
重构 ♻️ refactor(auth): 提取认证中间件
性能 ⚡ perf(list): 虚拟滚动优化长列表渲染
更新依赖 ⬆️ deps: 升级 FastAPI 到 0.110.0
CI 配置 👷 ci: 添加自动化测试工作流
发布版本 🔖 release: v2.1.0

相关工具:约定式提交规范