git-commit

git-commit

热门

执行 git commit,包含约定式提交信息分析、智能暂存和消息生成。当用户要求提交更改、创建 git commit 或提及 "/commit" 时使用。支持:(1) 根据更改自动检测类型和范围,(2) 根据差异生成约定式提交信息,(3) 交互式提交,可覆盖类型/范围/描述,(4) 智能文件暂存以实现逻辑分组

3.5万Star
4464Fork
更新于 2026/6/21
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 #123Refs #456
  • 描述保持在 72 字符以内

Git 安全协议

  • 绝不更新 git 配置
  • 未经明确请求,绝不运行破坏性命令(--force、hard reset)
  • 除非用户要求,绝不跳过钩子(--no-verify)
  • 绝不强制推送到 main/master
  • 如果提交因钩子失败,修复并创建新提交(不要修改)