名称: commit 描述: 在提交代码更改时,总是使用此技能——没有它不要直接提交。按照Sentry约定创建提交,使用正确的常规提交格式和问题引用。在提交、git commit、保存更改或提交消息任务时触发。
Sentry 提交消息
在为Sentry项目创建提交时,遵循这些约定。
前提条件
提交前,总是检查当前分支:
git branch --show-current
如果你在 main 或 master 分支上,必须先创建一个功能分支——除非用户明确要求提交到main。不要请求确认;默认创建分支。
# 创建并切换到新分支
git checkout -b <type>/<short-description>
分支命名应遵循模式:<type>/<short-description>,其中类型匹配提交类型(例如,feat/add-user-auth、fix/null-pointer-error、ref/extract-validation)。
格式
<type>(<scope>): <subject>
<body>
<footer>
头部是必需的。范围是可选的。所有行必须保持在100个字符以内。
提交类型
| 类型 | 目的 |
|---|---|
feat |
新功能 |
fix |
错误修复 |
ref |
重构(无行为变化) |
perf |
性能改进 |
docs |
仅文档 |
test |
测试添加或修正 |
build |
构建系统或依赖 |
ci |
CI配置 |
chore |
维护任务 |
style |
代码格式化(无逻辑变化) |
meta |
仓库元数据 |
license |
许可证更改 |
主题行规则
- 使用命令式、现在时:“添加功能”,而不是“添加了功能”
- 首字母大写
- 末尾无句号
- 最多70个字符
正文指南
- 解释什么和为什么,而不是如何
- 使用命令式语气和现在时
- 包括更改的动机
- 相关时与之前行为对比
页脚:问题引用
使用这些模式在页脚引用问题:
Fixes GH-1234
Fixes #1234
Fixes SENTRY-1234
Refs LINEAR-ABC-123
Fixes在合并时关闭问题Refs链接而不关闭
AI生成更改
当更改主要由编码代理(如Claude Code)生成时,在提交页脚包含Co-Authored-By归属:
Co-Authored-By: Claude <noreply@anthropic.com>
这是提交中应出现的唯一AI参与指示符。不要在主题、正文或提交消息的任何地方添加类似“由AI生成”、“与Claude编写”或类似标记。
示例
简单修复
fix(api): 处理用户端点中的空响应
用户API可能为已删除账户返回null,导致仪表板崩溃。在访问用户属性前添加空检查。
Fixes SENTRY-5678
Co-Authored-By: Claude <noreply@anthropic.com>
带范围的功能
feat(alerts): 为警报更新添加Slack线程回复
当警报更新或解决时,回复原始Slack线程而不是创建新消息。这使相关通知保持在一起。
Refs GH-1234
重构
ref: 提取公共验证逻辑到共享模块
将重复的验证代码从三个端点移动到共享验证器类。无行为变化。
重大更改
feat(api)!: 移除已弃用的v1端点
移除所有在版本23.1中已弃用的v1 API端点。客户端应迁移到v2端点。
BREAKING CHANGE: v1端点不再可用
Fixes SENTRY-9999
撤销格式
revert: feat(api): 添加新端点
这将撤销提交abc123def456。
原因:导致生产中的性能回归。
原则
- 每个提交应该是一个单一、稳定的更改
- 提交应该可独立审查
- 每个提交后仓库应该处于工作状态