git-commit-skill

# Git Commit 生成器

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-commit-skill" with this command: npx skills add tedburner/git-commit-skill

Git Commit 生成器

根据当前分支改动生成 git commit 内容,分阶段确认后再提交代码。

使用方式

用户输入:/git-commit

Skill 会自动分析当前分支的改动内容,智能推断并选择最合适的 Gitmoji 类型。


执行流程

阶段 1:分析改动并自动推断 Gitmoji

执行命令分析当前工作状态:

# 查看工作状态
git status

# 查看未暂存的改动内容
git diff

# 如果已有暂存文件,也查看暂存的改动
git diff --cached

输出改动点列表,按功能模块分组展示:

【当前分支改动分析】

改动的文件:
- src/main/java/UserService.java
- src/test/java/UserServiceTest.java
- src/main/java/UserController.java

改动点总结(按功能归类):
1. 新增用户管理模块(UserService、UserController)
2. 补充用户管理模块单元测试(UserServiceTest)

【推断的提交类型】:sparkles: 新功能

归类原则

  • 同一功能/需求涉及的多个文件改动,合并为一条
  • 主代码 + 对应测试文件,如测试是配套新增的,可合并
  • 跨模块的改动,按模块分组

等待用户确认

  • 询问用户改动点是否准确
  • 用户可以要求修改改动点
  • 如自动推断的 Gitmoji 不合适,用户可以指定其他类型
  • 用户确认无误后,进入下一阶段

阶段 1.5:安全检查(关键)

在生成 commit message 之前,必须检查改动中是否包含敏感信息。

敏感文件类型检查

如改动包含以下文件,必须暂停并提醒用户

文件类型风险示例
环境变量🔴.env, .env.local, .env.production
凭证文件🔴credentials, credentials.json, service-account.json
私钥证书🔴*.pem, *.key, *.p12, id_rsa, id_ed25519
AWS 配置🔴.aws/credentials, aws_config
数据库配置🔴database.yml, config.json(含密码)
Git 凭证🔴.git-credentials, .git-creds
其他敏感🟡*password*, *secret*, *token*(文件名)

敏感代码模式检查

检查 git diff 内容是否包含以下模式:

🔴 高危模式(发现则必须警告):
- password = "xxx" / password: "xxx"
- secret = "xxx" / secret_key = "xxx"
- api_key = "xxx" / apiKey = "xxx"
- token = "xxx"(长字符串)
- private_key = "xxx"
- aws_access_key / aws_secret_key
- 数据库连接串(含密码):mongodb://user:pass@
- DB_PASSWORD, MYSQL_PASSWORD, REDIS_PASSWORD 等

🟡 中危模式(建议提醒):
- 硬编码的邮箱 + 密码组合
- base64 编码的长字符串
- URL 含敏感查询参数

发现敏感信息时的处理流程

⚠️ 警告:检测到可能的敏感信息

【检测到的内容】
- 文件:.env
- 改动:DB_PASSWORD=MyPassword123

【风险】
提交此文件到公网可能导致:
- 数据库被未授权访问
- 敏感数据泄露
- 账号被盗用

【建议操作】
1. 确认此文件是否已添加到 .gitignore
2. 如未添加,执行:echo ".env" >> .gitignore
3. 移除已暂存:git reset .env
4. 使用环境变量或密钥管理服务

是否确认继续提交?(是/否)

只有用户明确确认后,才能进入阶段 2。


阶段 2:生成 commit message 并确认

根据确认后的改动点和自动推断的 Gitmoji 生成 commit message:

格式

:emoji-name: <改动点总结>

1. <改动点 1>
2. <改动点 2>
3. <改动点 3>

示例(新功能):

:sparkles: 新增用户管理模块

1. 新增 UserService 处理用户业务逻辑(注册、登录、权限校验)
2. 新增 UserController 提供 REST API 接口
3. 新增 UserDTO 和 UserVO 数据传输对象
4. 补充单元测试覆盖核心功能

示例(Bug 修复):

:bug: 修复用户登录验证问题

1. 修复 Token 过期导致的登录失败
2. 添加登录失败次数限制

示例(综合改动):

:sparkles: 新增数据导出功能并优化性能

1. 新增 ExportService 支持 Excel/CSV 格式导出
2. 优化大数据量查询使用游标分页
3. 添加导出任务异步处理机制
4. :arrow_up: 升级 easyexcel 到 3.3.0
5. :white_check_mark: 补充导出功能单元测试

展示 commit message 并等待用户确认

展示生成的 commit message 后,必须使用 AskUserQuestion 工具给用户 Yes/No 选择:

【生成的 commit message】
:sparkles: 新增用户管理模块

1. 新增 UserService 处理用户业务逻辑
2. 新增 UserController 提供 REST API 接口
3. 补充单元测试覆盖核心功能

请确认此 commit message 是否正确?
- Yes: 使用此 message,继续执行提交
- No: 我将手动输入改动点描述

用户选择处理

  1. 如果用户选择 Yes:使用生成的 commit message,进入阶段 3
  2. 如果用户选择 No:请用户输入想要的描述,重新生成后再次确认

重要:在用户确认 commit message 之前,不要执行任何 git add 或 git commit 命令。


阶段 3:执行 git add 暂存

用户确认 commit message 后,执行暂存:

git add -A

或者根据用户需求暂存特定文件:

git add <file1> <file2>

暂存后展示已暂存的文件列表,等待用户确认是否继续提交。


阶段 4:执行 git commit 提交

用户确认暂存文件无误后,执行提交:

git commit -m "<commit message>"

提交后展示结果:

  • 提交是否成功
  • 提交的简要信息(分支、文件数、commit hash 等)

阶段 5:询问是否推送到远程(可选)

提交成功后,询问用户:

提交成功!是否推送到远程仓库?

【推送信息】
分支:<current-branch>
远程:origin

请确认是否执行 git push?(是/否)

用户确认后执行:

git push origin <current-branch>

如果远程分支不存在,提示用户设置上游分支:

git push -u origin <current-branch>

Gitmoji 自动映射规则

根据改动特征自动选择最合适的 Gitmoji:

改动特征Shortcode说明
新增功能、模块、接口:sparkles:新功能
修复 bug、错误:bug:Bug 修复
紧急线上修复:ambulance:紧急热修复
文档、README、注释:memo:文档
代码重构、逻辑优化:recycle:重构
删除代码/文件:fire:删除
UI、样式文件:lipstick:UI 样式
部署、上线:rocket:部署
测试用例:white_check_mark:测试
安全漏洞修复:lock:安全
编译器/linter 警告:rotating_light:警告
CI/CD 配置:construction_worker:CI 系统
CI 构建修复:green_heart:CI 修复
依赖升级:arrow_up:升级
依赖降级:arrow_down:降级
新增依赖:heavy_plus_sign:添加依赖
移除依赖:heavy_minus_sign:删除依赖
配置文件:wrench:配置
脚本文件:hammer:脚本
编译文件/包:package:
代码格式/结构:art:代码结构
性能优化:zap:性能
破坏性变更:boom:破坏性变更
回滚:rewind:回滚
国际化:globe_with_meridians:i18n
无法明确判断:sparkles:默认新功能

完整 Gitmoji 参考:见 references/gitmojis.md


注意事项

  • 分阶段确认:每个阶段都等待用户确认后再继续
  • 安全检查必须执行:阶段 1.5 必须检查敏感文件和敏感代码模式
  • 无改动处理:如工作目录干净,告知用户没有待提交的改动
  • 灵活调整:用户可以在任何阶段要求修改或取消
  • Gitmoji 格式:使用 :name: 格式(如 :sparkles:),在 GitHub/GitLab 会自动渲染为 emoji

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Grab Company

Provides detailed insights on Grab's evolution, business model, market position, and significance in Southeast Asia's digital economy and super app landscape.

Registry SourceRecently Updated
General

CV-Driven Job Hunter

Asiste en una búsqueda laboral proactiva basada en el CV del usuario — analiza perfil, sugiere banda salarial, escanea boards y career pages, califica matche...

Registry SourceRecently Updated
General

Changelog Linter

Validate CHANGELOG.md files against the Keep a Changelog format (keepachangelog.com). Checks version ordering, date formats, section types, link references,...

Registry SourceRecently Updated
General

Bosch Company

Bosch is the world's largest automotive Tier 1 supplier, focusing on automotive parts, industrial tech, consumer goods, and energy solutions with a foundatio...

Registry SourceRecently Updated