一个基于 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 add、git commit 或 git push。
- 在设置中搜索
git-ai-commiter,配置 API Base URL 和模型名称。 - 打开命令面板,执行
Git AI Commiter: 设置/更新 API Key。 - 可执行
Git AI Commiter: 测试 API 连接验证配置。 - 在 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+。
