← Back to list

git-commit-message
by anghunk
可通过 askills 命令安装内置 skills 到当前项目或者全局目录。
⭐ 1🍴 0📅 Jan 16, 2026
SKILL.md
name: git-commit-message description: 读取暂存区变更(git diff --cached)并参考 git log 的最近提交风格生成提交消息。适用于用户让你读取暂存区、总结暂存变更或建议提交消息的场景。
Git 提交消息
概述
根据暂存区变更生成单行提交消息,并匹配仓库近期的提交风格与语言。
流程
-
确认变更范围
- 执行
git status --short。 - 若无任何变更(暂存区和工作区都干净),说明情况并停止。
- 若只有未暂存变更,询问用户是否基于未暂存变更生成消息。默认为否。
- 默认处理暂存区变更。如果用户确认,则后续流程使用
git diff而非git diff --cached。
- 执行
-
读取变更内容
- 根据第 1 步的选择,执行
git diff --cached(暂存区)或git diff(未暂存区)。 - 优化:通过
git diff --cached --numstat或git diff --numstat统计变更行数。如果总行数超过 100 行,则后续分析使用git diff --cached --stat或git diff --stat的摘要信息,以提升效率。
- 根据第 1 步的选择,执行
-
匹配仓库风格
- 执行
git log -5 --pretty=format:%s获取最近 5 条提交消息的主题行。 - 分析这些主题行的前缀(如
feat:、fix:、docs:)和语言风格。 - 优化(处理新仓库):如果
git log返回为空(即新仓库),则默认采用 Conventional Commits 规范(如feat:、fix:)。
- 执行
-
起草提交消息
- 根据变更内容和仓库风格,生成一个简洁、准确的主题行。
- 优化(支持多行消息):如果变更复杂(例如,修改了多个模块或变更行数超过 100 行),在主题行之下增加一个空行和简要的正文(body),说明变更的背景、目的和主要内容。
- 如果暂存区包含多种不相关的改动,建议用户拆分提交,或给出一个能涵盖所有改动的通用消息。
-
回复
- 输出推荐的单行或多行提交消息。
- 如果工作区有未暂存的改动而本次处理的是暂存区,可以补充一句提醒,说明未暂存的改动不会被包含在消息内。
Score
Total Score
60/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon