Skip to content

Repository files navigation

Git AI Commiter

Git AI Commiter Logo

一个基于 OpenAI-compatible API 的 VS Code Git Commit 消息生成扩展。它读取 staged 或 working tree 变更,结合项目上下文生成 Conventional Commit,并将流式结果写入 SCM 输入框。

功能

  • 支持 DeepSeek、通义千问、Moonshot、GLM、Ollama 等 OpenAI 兼容服务。
  • staged 优先的自动 diff,也可固定读取 staged 或 working tree。
  • working 模式支持未跟踪文本文件;二进制文件只发送路径。
  • 自动过滤 base64 数据并限制 diff 大小,降低超出上下文和意外费用的风险。
  • 结合项目名称、分支、文件统计和最近提交标题生成更贴合项目的消息。
  • 流式输出、取消生成、手动润色、自定义提示词和模型切换。
  • API Key 保存到 VS Code SecretStorage,不写入普通设置;日志不记录代码、提示词或完整响应。

扩展只生成消息,不会执行 git addgit commitgit push

快速开始

  1. 在设置中搜索 git-ai-commiter,配置 API Base URL 和模型名称。
  2. 打开命令面板,执行 Git AI Commiter: 设置/更新 API Key
  3. 可执行 Git AI Commiter: 测试 API 连接 验证配置。
  4. 在 Source Control 面板点击扩展图标生成 Commit 消息。

升级用户原来保存在 api.apiKey 中的密钥会在首次启动时自动迁移至 SecretStorage,并删除旧明文设置。

配置

配置项 说明 默认值
git-ai-commiter.language 输出语言 简体中文
git-ai-commiter.api.baseUrl OpenAI-compatible API 地址 https://api.deepseek.com
git-ai-commiter.api.model 模型名称 deepseek-v4-flash
git-ai-commiter.api.temperature 温度,范围 0–2 0.7
git-ai-commiter.api.topP Top-P,范围 0–1 1
git-ai-commiter.api.maxTokens 最大输出 Token 8192
git-ai-commiter.api.timeoutSeconds 请求超时秒数,范围 5–600 60
git-ai-commiter.git-diff.area auto / staged / working auto
git-ai-commiter.git-diff.wordDiff 使用单词级 diff true
git-ai-commiter.git-diff.unified diff 上下文行数 0
git-ai-commiter.git-diff.filterMeta 过滤部分 diff 元信息 false
git-ai-commiter.git-diff.includeUntracked working 模式包含未跟踪文件 true
git-ai-commiter.git-diff.maxCharacters 发送给模型的最大 diff 字符数 60000
git-ai-commiter.commitMessage.outputStyle detailed / concise detailed
git-ai-commiter.context.enabled 启用最小项目上下文 true
git-ai-commiter.context.recentCommits 最近提交标题数量,范围 0–30 10

auto 模式检测到 staged 变更时只使用 staged;否则使用 working tree,不会静默混合两者。旧配置值 cached 会自动迁移为 staged

项目规则

可在仓库根目录创建 .git-ai-commiter.json

{
  "language": "简体中文",
  "types": ["feat", "fix", "refactor", "docs", "test", "chore"],
  "scopes": ["git", "ai", "prompt", "config"],
  "instructions": "摘要使用动词开头,破坏性变更必须在正文说明",
  "recentCommits": 10
}

字段均为可选项。recentCommits 允许 0–30;项目规则优先于 VS Code 设置。扩展不会自动创建或修改该文件。

部分兼容服务不提供模型列表接口,此时“切换AI模型”会自动改为手动输入模型名称,不影响 Commit 生成功能。

命令

命令 说明
AI生成 Commit消息 根据 Git 变更生成消息
手动生成Commit消息(AI润色) 润色手动输入的消息
设置/更新 API Key 安全保存密钥
清除 API Key 删除已保存密钥
测试 API 连接 验证地址、密钥和模型
切换AI模型 从服务端模型列表切换模型
添加/编辑/删除/选择提示词模板 管理自定义模板;内置模板不可编辑或删除
下载远程提示词 下载 JSON 格式模板列表
打开设置 打开扩展设置

隐私与故障排查

  • 模型会收到经过过滤和限额的 Git diff。开启项目上下文后,还会收到项目名称、分支、文件统计和最近提交标题。
  • 扩展不会读取 README、Git 作者信息或 diff 以外的源码全文作为项目上下文。
  • 诊断日志位于“输出 → Git AI Commiter”,其中不包含 API Key、完整 diff、prompt 或完整模型响应。
  • 认证失败时重新执行“设置/更新 API Key”;模型不存在时检查 Base URL 与模型名;大仓库可调低 maxCharacters
  • 生成取消、超时或失败时,扩展会恢复生成前的 SCM 输入内容。
  • prompts.json 损坏时会先备份为 .corrupt-<timestamp> 再恢复默认模板;权限错误不会覆盖原文件。

开发

pnpm install
pnpm exec tsc --noEmit
pnpm run test
pnpm run lint
pnpm run compile
pnpm run vscode:package

要求 Node.js 20+、pnpm 10、VS Code 1.75+。

License

MIT

About

vscode插件 | Git AI Commiter | 通过ai生成git提交信息

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages