mcpField
G
git-commit

git-commit

github.com/fudesign2008开发689 次安装2 天前更新
代码仓库

关于 git-commit

git-commit 是提交工作流技能,可收集提交信息、检测工作区中的项目并生成统一格式的提交消息。默认执行 Git 操作;明确要求手动模式时则只生成命令,不实际运行。

主要功能

  1. 01自动与手动执行模式
  2. 02提交信息字段和格式规则
  3. 03多项目工作区检测
  4. 04检查状态、暂存、提交和推送
  5. 05大规模改动与受保护分支警告

适用场景

  1. 01根据工作区改动生成格式化提交
  2. 02只生成 Git 命令而不执行
  3. 03为检测到的多个项目分别提交
  4. 04提交前检查分支和改动规模

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fudesign2008/open-skills --skill git-commit

安装后在 Claude Code 中输入/git-commit确认已加载。

详细介绍

Git 提交 — 统一入口(默认自动模式)

模式检测规则

信号结果
调用方传入 execute=true,或由 jira-fix-workflow 第 7 阶段触发自动模式
用户说「手动提交」「只生成命令」「不要执行」「给我命令」(manual commit / only generate command / don't execute / give me the command)手动模式
其他触发条件或上下文不明确默认使用自动模式

执行流程

步骤 1:收集提交信息

提交消息字段:

  • type:fix、feat、refactor、perf、style、docs、test
  • scope(可选):ai-summary、share、auth、api、ui、core
  • subject:用用户偏好的语言简要描述,最多 50 个字符
  • jira_id(可选):例如 PROJ-123

(jira_id 为可选项;branch、report_path 等其他上下文信息由调用方传入,不会写入提交消息)

步骤 2:确定执行模式

决定 execute=false(手动)或 execute=true(自动)。参见上方「模式检测规则」。

步骤 3:检测多个项目

扫描规则:

  • 扫描范围:工作区根目录的一级和二级子目录
  • 识别方式:存在 .git 目录
  • 排除:node_modules、.cursor、dist、build、.git、隐藏目录(以 . 开头)
  • 对每个候选目录运行 git status,验证其有效性

多项目场景:仅在主项目(第一个项目)中提交报告文件;每个有更改的项目都使用各自的提交消息。

步骤 4:生成提交消息

格式:

<type>(<scope>): <Jira-ID> <subject>

规则:

  • Subject:最多 50 个字符,使用用户偏好的语言,必须包含与类型匹配的动词(例如:feat:新增/Add、fix:修复/Fix、refactor:重构/Refactor、perf:优化/Optimize、style:格式化/Format、docs:文档/Docs、test:测试/Test)
  • 存在 Jira ID 时,将其放在 subject 前面
  • 没有 scope 时省略括号:<type>: <subject>
  • 提交消息仅包含标题行,不含正文
步骤 5:执行 Git 操作

手动模式(execute=false):生成命令,不执行,并提示用户手动运行。

自动模式(execute=true):按顺序执行以下命令,并输出每条命令的结果或状态:

  1. git status — 输出当前更改摘要
  2. 受保护分支检查 — 直接提交到 main/master/develop 会绕过代码审查;未经审查的生产代码会进入 main。检测到时警告用户
  3. git add . — 输出已暂存文件的状态
  4. git commit -m "..." — 输出提交哈希和消息
  5. git log -1 --stat — 输出提交统计信息(更改的文件和行数)
  6. git push -u origin [branch-name] — 输出推送结果或分支跟踪信息

对于多个项目,需分别为每个项目独立执行这些步骤,并在最后输出汇总表。

输出格式

自动模式(默认):

## Git Commit (Auto Mode)

**Project**: backend   **Branch**: fix/PROJ-123
**Commit**: a1b2c3d  **Push**: ✅ Success
**Changes**: +45/-12 (3 files)

**Next**: Create PR → Code Review → Test Verification

手动模式(用户明确请求时):

## Git Commit (Manual Mode)

**Generated Commit Message**:
fix(ai-summary): PROJ-123 修复分享链接中AI摘要按钮显示问题

**Commands**:
git status
git add .
git commit -m "fix(ai-summary): PROJ-123 修复分享链接中AI摘要按钮显示问题"
git log -1 --stat
git push -u origin [branch-name]  # optional

**Note**: Please review and execute the above commands manually.

对于多个项目,需分别为每个项目独立输出,并在最后附上汇总表。

错误处理

场景处理方式
没有未提交的更改手动模式:告知用户没有内容可提交;自动模式:输出 "No changes to commit",或运行 git add . 后显示 "Staging area empty"
分支不存在报错,并建议先创建分支
Git 操作失败显示错误,并提供备用方案(建议「手动提交」以重试)
当前目录不在 Git 仓库中报错并终止,建议检查目录
多项目检测失败回退到单项目模式,使用当前目录

安全机制(自动模式)

  • 更改超过 10 个文件 / 500 行时发出警告;超过 20 个文件 / 1000 行时再次警告(警告不会阻止操作);一个项目失败不会影响其他项目

评论

支持 Markdown