关于 git-commit
git-commit 是按 Conventional Commits 规范创建语义化 Git 提交的技能。它会分析差异以选择类型、范围和简洁消息,并在暂存与提交操作中遵循安全约束。
主要功能
- 01分析已暂存或工作区差异
- 02选择提交类型和范围
- 03撰写简洁的 Conventional Commits 消息
- 04按需暂存文件
- 05防范有风险的 Git 操作
适用场景
- 01提交明确范围的功能或修复
- 02将变更整理为逻辑清晰的提交
- 03在提交消息中标记破坏性变更
- 04避免提交机密或未经请求的共同作者署名
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ buiducnhat/ cobrew --skill git-commit安装后在 Claude Code 中输入/git-commit确认已加载。
详细介绍
使用 Conventional Commits 规范提交 Git
概述
使用 Conventional Commits 规范创建标准化、语义明确的 Git 提交。分析实际差异,以确定合适的类型、范围和消息。
Conventional Commit 格式
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
提交类型
| 类型 | 用途 |
|---|---|
feat | 新功能 |
fix | 修复 Bug |
docs | 仅文档变更 |
style | 格式/样式调整(不涉及逻辑) |
refactor | 代码重构(非功能或修复) |
perf | 性能改进 |
test | 添加/更新测试 |
build | 构建系统/依赖项 |
ci | CI/配置变更 |
chore | 维护/杂项 |
revert | 回退提交 |
破坏性变更
# Exclamation mark after type/scope
feat!: remove deprecated endpoint
# BREAKING CHANGE footer
feat: allow config to extend other configs
BREAKING CHANGE: `extends` key behavior changed
工作流
0. 加载提交上下文
仅加载与提交分组和消息约定相关的项目上下文:
- 如果存在
docs/SUMMARY.md,先阅读。 - 仅加载与 Git、发布或代码规范约定相关的详细文档。
- 优先参考
Code Standard文档中的提交和实现约定。 - 如果文档与代码或用户意图冲突,应先依据现有输入/问题判断,再进行大范围更改。
1. 分析差异
# If files are staged, use staged diff
git diff --staged
# If nothing staged, use working tree diff
git diff
# Also check status
git status --porcelain
2.暂存文件(如有需要)
如果没有暂存任何文件,或者你想以不同方式分组更改:
# Stage specific files
git add path/to/file1 path/to/file2
# Stage by pattern
git add *.test.*
git add src/components/*
# Interactive staging
git add -p
绝不要提交机密(.env、credentials.json、私钥)。
3. 生成提交消息
分析差异,以确定:
- 类型:这是什么类型的更改?
- 范围:影响了哪个区域/模块?
- 描述:用一行概述更改内容(现在时、祈使语气,少于 72 个字符)
4. 执行提交
# Single line
git commit -m "<type>[scope]: <description>"
# Multi-line with body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>
<optional body>
<optional footer>
EOF
)"
最佳实践
- 每个提交只包含一项逻辑更改
- 使用现在时:“add”,而非“added”
- 使用祈使语气:“fix bug”,而非“fixes bug”
- 引用问题:
Closes #123、Refs #456 - 描述保持在 72 个字符以内
Git 安全协议
- 绝不更新 Git 配置
- 未经明确请求,绝不运行破坏性命令(如 --force、硬重置)
- 除非用户要求,否则绝不跳过钩子(--no-verify)
- 绝不强制推送到 main/master
- 如果提交因钩子而失败,请修复问题并创建新提交(不要修补原提交)
其他规则
- 未经用户请求,绝不自动添加共同作者署名,因为其中可能包含敏感信息。添加
Co-authored-by提交消息尾注前,务必询问用户是否要添加共同作者以及共同作者是谁。
评论
支持 Markdown