关于 git-commit
git-commit 是提交工作流技能,可收集提交信息、检测工作区中的项目并生成统一格式的提交消息。默认执行 Git 操作;明确要求手动模式时则只生成命令,不实际运行。
主要功能
- 01自动与手动执行模式
- 02提交信息字段和格式规则
- 03多项目工作区检测
- 04检查状态、暂存、提交和推送
- 05大规模改动与受保护分支警告
适用场景
- 01根据工作区改动生成格式化提交
- 02只生成 Git 命令而不执行
- 03为检测到的多个项目分别提交
- 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):按顺序执行以下命令,并输出每条命令的结果或状态:
- git status — 输出当前更改摘要
- 受保护分支检查 — 直接提交到 main/master/develop 会绕过代码审查;未经审查的生产代码会进入 main。检测到时警告用户
- git add . — 输出已暂存文件的状态
- git commit -m "..." — 输出提交哈希和消息
- git log -1 --stat — 输出提交统计信息(更改的文件和行数)
- 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