Use this skill when writing git commit messages or generating changelogs. It enforces Conventional Commits format with Chinese scope descriptions, provides templates for common commit types, and generates structured commit messages from code diffs. Triggers on git commit, changelog generation, or version release tasks.
每次提交必须遵循 Conventional Commits 格式:
<type>(<scope>): <subject>
<body>
<footer>
| type | 含义 | 示例 |
|---|---|---|
feat | 新功能 | feat(用户): 添加手机号登录 |
fix | 修复 bug | fix(订单): 修复金额计算精度丢失 |
docs | 文档变更 | docs: 更新 API 接口文档 |
style | 代码格式(不影响逻辑) | style: 统一缩进为 2 空格 |
refactor | 重构(不是新功能也不是修 bug) | refactor(支付): 抽取公共支付逻辑 |
perf | 性能优化 | perf(列表): 虚拟滚动优化长列表渲染 |
test | 测试相关 | test(用户): 补充注册接口单元测试 |
chore | 构建/工具/依赖变更 | chore: 升级 vite 到 5.x |
ci | CI/CD 配置 | ci: 添加 GitHub Actions 自动部署 |
revert | 回滚 | revert: 回滚 feat(用户): 添加手机号登录 |
scope 描述影响范围,用中文业务域名称,不用文件名:
✓ feat(用户): 添加头像上传功能
✓ fix(订单): 修复取消订单后库存未恢复
✓ feat(权限): 支持按钮级别权限控制
✗ feat(src/views/user): 添加头像上传功能 ← 不要用文件路径
✗ feat(UserAvatar.vue): 添加头像上传功能 ← 不要用文件名
常见 scope:用户、订单、支付、商品、权限、通知、搜索、报表、设置
无明确业务域时可省略 scope:docs: 更新部署文档
✓ feat(购物车): 支持批量删除商品
✓ fix(登录): 修复验证码倒计时结束后按钮未恢复
✗ fix(登录): 修复了一个 bug ← 没说修了什么
✗ feat: 更新代码 ← 废话
✗ fix: 改了点东西 ← 废话
以下情况必须写 body:
fix(订单): 修复并发下单时库存扣减不一致
根因:多个请求同时读取库存后各自扣减,导致超卖。
方案:改用数据库乐观锁(version 字段),扣减时检查版本号。
放弃方案:Redis 分布式锁(引入额外依赖,且单点故障风险)。
影响范围:order_service.go 的 CreateOrder 方法。
# 关联 issue
fix(支付): 修复微信支付回调签名验证失败
Closes #142
# 破坏性变更
feat(API): 用户列表接口返回格式变更
BREAKING CHANGE: GET /api/users 返回格式从数组改为分页对象
迁移方式:将 response.data 改为 response.data.list
当需要根据代码变更生成 commit message 时,按以下步骤判断:
判断 type:
featfixrefactortestdocschore判断 scope:
写 subject:
判断是否需要 body:
console.log 调试代码提交上去.env 文件或任何密钥git add . 然后盲目提交,先 git diff --staged 看一眼