SuperAPI AI 工具集

smart-commit

编程与开发

查看项目

更新于 10-16 09:02

技能介绍

Smart Commit 是一个 AI 驱动的 Git 提交信息生成工具,利用 LLM 对代码变更进行总结,生成有意义的提交信息。

主要能力

  • 修改上一条提交(Amend Last Commit):总结已暂存或未暂存的变更,并修改上一条提交信息。
  • 压缩提交(Squash Commits):总结最近 N 条提交,创建一条合并后的提交。
  • 交互式提交(Interactive Commit):与用户确认要包含的文件,然后总结变更并创建新提交。

使用方式

新提交

  1. 执行 git status 显示变更文件并请用户确认。
  2. 确认后,由 LLM 总结变更。
  3. 使用生成的提交信息创建提交。

修改提交(Amend)

# 获取待修改的变更 diff
git diff --cached  # 已暂存
git diff HEAD~1    # 与上一条提交比较

# LLM 总结后执行
git commit --amend -m "new message"

压缩提交(Squash)

# 获取最近 N 条提交的信息与 diff
git log -n N --format="%H %s"

# LLM 总结后执行
git reset --soft HEAD~N
git commit -m "consolidated message"

工作流决策树

用户需要 Git 提交帮助? ├─ "amend" 或 "修改"? → 修改工作流 ├─ "squash" 或 "合并" + 数字? → 压缩工作流 └─ 新提交? → 交互式工作流

修改工作流

  1. 获取变更:git diff --cached(已暂存)或 git diff HEAD~1(自上次提交以来的所有变更)
  2. 使用 references/prompts.md 中 "Amend Commit" 部分的提示词发送给 LLM
  3. 用户审核建议的提交信息
  4. 执行 git commit --amend -m "message"

压缩工作流

  1. 获取最近 N 条提交:git log -n N --format="%H|%s|%an|%ad"
  2. 获取合并 diff:git diff HEAD~N..HEAD
  3. 使用 references/prompts.md 中 "Squash Commits" 部分的提示词发送给 LLM
  4. 用户审核建议的提交信息
  5. 执行 git reset --soft HEAD~N && git commit -m "message"

交互式提交工作流

  1. 向用户显示 git status
  2. 请用户确认要包含哪些文件
  3. 获取已确认文件的 diff
  4. 使用 references/prompts.md 中 "New Commit" 部分的提示词发送给 LLM
  5. 用户审核建议的提交信息
  6. 执行 git add <files> && git commit -m "message"

LLM 提示词

参见 references/prompts.md,其中包含:

  • 新提交信息生成
  • 修改提交信息生成
  • 压缩提交信息生成

每个提示词包含:

  • Git diff 输入格式
  • 输出格式要求
  • 风格规范(如 conventional commits 等)