Git Record — 生成 Git 提交记录
触发时机
- 用户说"生成 git 提交记录"、"帮我提交"、"生成 commit message"
- 用户使用
/git-record斜杠命令
执行步骤
Step 1:收集变更信息
依次执行以下命令(同一仓库内):
# 1. 查看当前分支与状态
git status
# 2. 查看未暂存的变更(完整 diff)
git diff --no-color
# 3. 查看已暂存的变更(如有)
git diff --cached --no-color
# 4. 查看最近提交历史(了解提交风格)
git log --oneline -5
Step 2:分析变更内容
对每个变更文件执行以下分析:
- 识别变更类型:新增文件 / 修改文件 / 删除文件
- 按功能模块分组:将关联变更归入同一功能模块
- 提取核心语义:用一句话描述每个模块的变更目的
Step 3:生成变更汇总表
以 Markdown 表格形式展示:
| 模块 | 涉及文件 | 变更说明 |
|------|---------|---------|
| 模块名称 | `文件名1`、`文件名2` | 简要说明 |
文件命名规则:
- Java 类:只显示类名(不含包路径)
- 配置文件:显示相对路径
- 资源文件:显示文件名
Step 4:生成提交信息
格式如下(中文优先,与历史提交风格保持一致):
<type>: <一句话摘要>
1. <模块1>:<详细说明>
2. <模块2>:<详细说明>
...
type 取值:
| type | 含义 |
|---|---|
| feat | 新功能 |
| fix | 修复 bug |
| refactor | 重构(不影响功能) |
| docs | 文档变更 |
| style | 格式调整 |
| test | 测试相关 |
| chore | 构建/工具/配置变更 |
若变更跨越多个类型,主类型选最主要的一个,其余在详情中体现。
Step 5:展示结果并询问操作
向用户展示:
- 变更汇总表
- 推荐提交信息(代码块格式,可直接复制)
- 询问是否执行提交:
是否需要我执行 `git add` + `git commit` 提交这些修改?
注意事项
- 不主动执行 commit:除非用户明确确认,否则只生成提交信息,不执行提交操作
- 保持风格一致:参考
git log --oneline -5的历史提交风格,保持语言和格式统一 - 合并琐碎变更:单个文件的微小改动(如注释、格式)可合并到相关模块,不必单独列出
- 新增文件单独标注:新增文件在涉及文件列用「新增
文件名」标注 - 大变更拆分建议:若变更涉及超过 5 个功能模块,建议用户考虑拆分为多次提交