mcpField
G
git-commit

git-commit

github.com/buiducnhat开发48154 次安装18 周前更新
代码仓库

关于 git-commit

git-commit 是按 Conventional Commits 规范创建语义化 Git 提交的技能。它会分析差异以选择类型、范围和简洁消息,并在暂存与提交操作中遵循安全约束。

主要功能

  1. 01分析已暂存或工作区差异
  2. 02选择提交类型和范围
  3. 03撰写简洁的 Conventional Commits 消息
  4. 04按需暂存文件
  5. 05防范有风险的 Git 操作

适用场景

  1. 01提交明确范围的功能或修复
  2. 02将变更整理为逻辑清晰的提交
  3. 03在提交消息中标记破坏性变更
  4. 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构建系统/依赖项
ciCI/配置变更
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