git-commitlisted
Install: claude install-skill nicholyx/ai-skills
# Git 约定式提交
## 概述
使用约定式提交(Conventional Commits)规范创建标准化、语义化的 git commit。分析实际 diff 来确定合适的 type、scope 和消息。
## 语言设置
**默认生成中文提交消息。** 用户可通过参数指定其他语言,例如:
- 无参数 → 中文消息
- `--lang=en` → 英文消息
## 约定式提交格式
```
<type>[可选 scope]: <描述>
[可选正文]
[可选脚注]
```
### 中文消息示例
```
feat(auth): 引入 JWT 验证以保护接口安全
实现 JWT Token 验证中间件,解决接口未鉴权的安全风险:
- 验证 Token 签名和过期时间,防止伪造请求
- 从 Payload 提取用户声明,供下游使用
- 将用户上下文注入请求对象,避免重复查询
- 处理 Refresh Token 轮换,保持会话连续性
```
### 英文消息示例
```
feat(auth): add JWT validation to secure API endpoints
```
## 提交类型
| 类型 | 用途 |
| ---------- | ---------------------------- |
| `feat` | 新功能 |
| `fix` | 修复缺陷 |
| `docs` | 仅文档变更 |
| `style` | 代码格式/风格(不影响逻辑) |
| `refactor` | 重构(非功能/非修复) |
| `perf` | 性能优化 |
| `test` | 新增/更新测试 |
| `build` | 构建系统/依赖变更 |
| `ci` | CI/配置变更 |
| `chore` | 维护/杂项 |
| `revert` | 回退提交 |
## 破坏性变更
```
# type/scope 后加感叹号
feat!: 移除已废弃的接口以简化 API 维护
# BREAKING CHANGE 脚注
feat: 支持配置继承以减少重复配置
BREAKING CHANGE: `extends` 键的行为已变更
```
## 提交拆分策略
当检测到以下情况时,应建议拆分为多个提交:
1. **混合类型**:新功能 + 缺陷修复在同一提交中
2. **多关注点**:不相关的变更混在一起
3. **大范围变更**:跨越多个模块的修改
4. **文件模式混合**:源码 + 测试 + 文档混杂
5. **依赖混杂**:依赖更新与功能代码混合
## 工作流程
### 1. 分析差异
```bash
# 首先检查暂存区
git diff --staged
# 同时检查状态,判断暂存区和工作区情况
git status --porcelain
```
**默认只提交暂存区(staged)的代码。** 流程如下:
1. 先检查暂