暂存区提交消息助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_c971495e/git-staged-commit-message。
技能介绍
解决的问题
开发者在日常 Git 操作中经常遇到一个场景:文件已经通过 git add 加入暂存区,但面对暂存的具体变更内容,往往需要花时间回忆每个文件修改了什么、为什么改。当一个提交包含多个文件或较为复杂的逻辑变更时,编写清晰准确的 commit message 并非易事。这个技能旨在让开发者直接从暂存区读取变更内容,快速生成符合项目规范的提交信息。
技能如何工作
技能的执行流程非常聚焦,全程只围绕 暂存区 展开,不触碰工作区中的未暂存修改或未跟踪文件。
环境检测与预检
首先会执行 git rev-parse --show-toplevel 确认当前目录位于 Git worktree 内,否则会提示无法从非 Git 目录生成提交信息。接着通过 git diff --cached --quiet --exit-code 判断是否存在已暂存的变更,如果没有暂存文件,会提醒用户先用 git add 添加文件后再使用。
暂存区分析
技能会分三个层次查看暂存内容:使用 git diff --cached --stat 了解变更范围,通过 git diff --cached --name-status 理解每个文件的操作类型,必要时用 git diff --cached -- 查看具体的代码变更意图。这一过程确保生成的提交信息只基于暂存区的实际内容。
生成与风格适配
生成消息时,技能会先运行 git log -5 --pretty=format:%s 检查仓库近期的提交风格。如果项目已有明确的格式约定,则遵循该风格;否则采用简洁的 Conventional Commits 格式,主题行控制在 72 字符以内。只有在变更本身需要解释时,才会补充简短的 body 说明。
适用边界与注意事项
技能的输出只包含 commit message 文本,以代码块形式返回,方便用户直接复制使用。技能本身不会执行 git commit,完全由开发者自行决定何时提交。
需要注意,技能严格限定在暂存区范围内工作。工作区中未暂存的修改、未跟踪的新文件不会被纳入分析。如果用户希望这些内容出现在提交信息中,需要明确说明并分别处理。此外,当暂存区为空时技能会停止执行,需要用户先 git add 再重新调用。
使用场景
- 当你已经执行了 `git add` 暂存了多个文件的修改,但不确定如何用一句话概括这些变更内容,需要基于暂存差异自动生成提交主题。
- 当你在一个遵循 Conventional Commits 规范的仓库中开发,每次提交前希望生成格式统一、语义清晰的类型前缀和主题描述。
- 当你的暂存区包含了重构、修复和测试等多个维度的改动,需要一条能准确覆盖所有暂存内容而不遗漏的提交信息。
- 当你在团队协作中提交代码,希望生成的提交信息能匹配仓库历史风格,方便其他成员通过 `git log` 快速理解每次提交的意图。
适合人员
- 后端开发工程师,每次提交前需要根据暂存的多个文件变更快速生成语义准确的提交主题,确保 `git log` 历史可读。
- 刚加入新项目的初级开发者,对仓库现有的提交规范不熟悉,希望工具能自动检测风格并生成符合约定的提交信息。
- 负责维护大型开源项目的维护者,在合并 PR 前需要为一批相关联的暂存变更生成清晰、可追溯的提交说明。
- 正在处理热修复的工程师,在紧急场景下已暂存多个修复文件,需要一个能准确描述修复范围和内容的提交信息,避免遗漏关键上下文。