SKILL.md
readonly只读
name
git-commit
description
执行 git commit,包含约定式提交信息分析、智能暂存和消息生成。当用户要求提交更改、创建 git commit 或提及 "/commit" 时使用。支持:(1) 根据更改自动检测类型和范围,(2) 根据差异生成约定式提交信息,(3) 交互式提交,可覆盖类型/范围/描述,(4) 智能文件暂存以实现逻辑分组
Git Commit with Conventional Commits
概述
使用约定式提交规范创建标准化、语义化的 git 提交。分析实际差异以确定适当的类型、范围和消息。
约定式提交格式
<类型>[可选范围]: <描述>
[可选正文]
[可选脚注]
提交类型
| 类型 | 用途 |
|---|---|
feat |
新功能 |
fix |
错误修复 |
docs |
仅文档 |
style |
格式/样式(无逻辑变更) |
refactor |
代码重构(非功能或修复) |
perf |
性能改进 |
test |
添加/更新测试 |
build |
构建系统/依赖项 |
ci |
CI/配置更改 |
chore |
维护/杂项 |
revert |
回退提交 |
破坏性变更
# 类型/范围后加感叹号
feat!: 移除已弃用的端点
# BREAKING CHANGE 脚注
feat: 允许配置扩展其他配置
BREAKING CHANGE: `extends` 键的行为已更改
工作流程
1. 分析差异
# 如果文件已暂存,使用暂存差异
git diff --staged
# 如果未暂存,使用工作树差异
git diff
# 同时检查状态
git status --porcelain
2. 暂存文件(如果需要)
如果未暂存任何内容或希望以不同方式分组更改:
# 暂存特定文件
git add path/to/file1 path/to/file2
# 按模式暂存
git add *.test.*
git add src/components/*
# 交互式暂存
git add -p
切勿提交机密信息(.env、credentials.json、私钥)。
3. 生成提交信息
分析差异以确定:
- 类型:这是什么类型的更改?
- 范围:影响哪个区域/模块?
- 描述:更改内容的一行摘要(现在时,祈使语气,<72 字符)
4. 执行提交
# 单行
git commit -m "<类型>[范围]: <描述>"
# 多行带正文/脚注
git commit -m "$(cat <<'EOF'
<类型>[范围]: <描述>
<可选正文>
<可选脚注>
EOF
)"
最佳实践
- 每次提交一个逻辑更改
- 现在时:使用“添加”而非“已添加”
- 祈使语气:使用“修复错误”而非“修复了错误”
- 引用问题:
Closes #123、Refs #456 - 描述保持在 72 字符以内
Git 安全协议
- 绝不更新 git 配置
- 未经明确请求,绝不运行破坏性命令(--force、hard reset)
- 除非用户要求,绝不跳过钩子(--no-verify)
- 绝不强制推送到 main/master
- 如果提交因钩子失败,修复并创建新提交(不要修改)






