Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>GSDSE Git AI CommitNew to Visual Studio Code? Get it now.
GSDSE Git AI Commit

GSDSE Git AI Commit

吴颖浩

|
1 install
| (0) | Free
使用自定义 BaseURL 的 AI 模型,以 Agent 模式分析 Git 变更并生成符合规范的提交信息。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GSDSE Git AI Commit

用你自己配置的任意 AI 模型(任何 OpenAI 兼容接口),以 Agent 模式分析 Git 变更,生成符合规范的提交信息。

不再受限于某一家的模型:填上 BaseURL + model + API Key 即可接入 OpenAI、DeepSeek、Kimi、通义、智谱、Claude/ Gemini 的中转网关、公司内部 LLM 网关、Ollama / vLLM / LM Studio 本地模型。


特性

Agent 模式,而不是「把 diff 丢给模型」

普通插件只做一次「diff → 模型 → 文本」。本扩展让模型自己决定还需要看什么:

工具 作用
get_changed_files 列出本次变更的全部文件与 git 状态码
get_diff 按路径、按暂存区/工作区拉取 diff
get_recent_commits 读取历史提交,学习本仓库既有的措辞与风格
read_file 读取文件全文或指定行区间,理解变更上下文
list_files 列出被跟踪文件,确认模块结构
search_code 按正则检索符号定义与调用方
submit_commit_message 提交最终结果(唯一被接受的产出方式)

模型只有在信息足够时才会产出结果,因此提交信息不会出现「修改了 xx 文件」这类无信息量的描述,也不会编造 diff 中并不存在的功能。

自动降级,兼容性兜底

  • 模型/网关不支持 Function Calling → 自动退化为单次生成模式。
  • 不支持流式响应 → 自动改用非流式请求。
  • 推理模型只认 max_completion_tokens、部分模型不允许传 temperature、网关未实现 tool_choice → 自动调整参数后重试。

提交信息规范可配置

  • 风格:Conventional Commits / Conventional + Emoji / Gitmoji / 纯文本
  • 语言:简体中文 / English
  • type 白名单、scope 提示、标题长度上限、正文与脚注开关
  • 团队自定义提示词(术语表、必须引用的 issue 规范等)

侧边栏可视化配置,不用翻设置页

活动栏的 Git AI Commit 面板提供完整的图形化配置:

  • 顶部实时显示最终请求端点(.../chat/completions)与 API Key、Agent 模式状态
  • 模型服务(BaseURL / 模型 / API Key / 鉴权头 / 额外请求头)默认展开,其余参数折叠收拢
  • 面板内直接测速(测试连接)、保存(可指定写入工作区或用户设置)、清除密钥、生成提交信息 / 生成并提交 / 取消 / 查看日志
  • 表单值未保存也可以直接用于「测试连接」,确认无误再落盘

工程化细节

  • 生成结果自动写入源代码管理(SCM)的提交输入框,确认后直接提交
  • diff 排除规则(锁文件、构建产物、dist/)与超长 diff 自动折叠,控制 token 消耗
  • API Key 存储在 VS Code SecretStorage,不写入 settings.json
  • 进度通知可随时取消;输出面板提供 off / error / info / debug 四级日志,debug 级别可查看完整的模型请求与工具调用链

快速开始

  1. 安装扩展后点击活动栏的 Git AI Commit 图标,在 AI 模型配置 面板中填写 BaseURL、模型名称 和 API Key(本地模型可留空)。
  2. 点 测试连接 确认配置可用,再点 保存 写入设置(API Key 存入 SecretStorage)。
  3. 暂存你想提交的变更,在面板中点击 生成提交信息,或点击源代码管理标题栏的 ✨ 按钮、按 Ctrl+Alt+G。
  4. 生成结果会写入 SCM 提交输入框,确认后提交;也可以在面板中直接 生成并提交。

面板只是图形化入口,所有配置项仍等价于 settings.json 中的 gsdseGitAiCommit.*,两者双向同步。命令面板中的原有命令全部保留。

常见服务配置示例

// OpenAI
{
  "gsdseGitAiCommit.baseUrl": "https://api.openai.com/v1",
  "gsdseGitAiCommit.model": "gpt-4o-mini"
}

// DeepSeek
{
  "gsdseGitAiCommit.baseUrl": "https://api.deepseek.com/v1",
  "gsdseGitAiCommit.model": "deepseek-chat"
}

// Ollama(本地,无需 API Key)
{
  "gsdseGitAiCommit.baseUrl": "http://localhost:11434/v1",
  "gsdseGitAiCommit.model": "qwen2.5-coder:14b"
}

// Azure OpenAI 或自建网关(自定义请求头)
{
  "gsdseGitAiCommit.baseUrl": "https://your-gateway.internal/v1",
  "gsdseGitAiCommit.model": "your-deployment",
  "gsdseGitAiCommit.apiKeyHeader": "api-key",
  "gsdseGitAiCommit.apiKeyPrefix": "",
  "gsdseGitAiCommit.extraHeaders": {
    "X-Org-Id": "team-a"
  }
}

baseUrl 只填到域名时会自动补 /v1;已包含路径(如 /openai/v1)则原样使用。


命令

命令 说明 默认快捷键
Git AI Commit: 打开 AI 模型配置面板 聚焦侧边栏配置面板
Git AI Commit: 生成提交信息 生成并写入 SCM 输入框 Ctrl+Alt+G / Cmd+Alt+G
Git AI Commit: 生成提交信息(仅暂存区) 严格只分析已暂存的变更
Git AI Commit: 生成提交信息(含未暂存变更) 先 git add -A 再生成
Git AI Commit: 生成提交信息并提交 生成后直接 git commit
Git AI Commit: 取消当前生成任务 中断正在进行的生成
Git AI Commit: 设置 / 清除 AI 模型 API Key 管理密钥
Git AI Commit: 测试模型连通性 发一次最小请求验证配置
Git AI Commit: 查看运行日志 打开输出面板

配置项

配置 类型 默认值 说明
baseUrl string https://api.openai.com/v1 OpenAI 兼容接口地址
model string gpt-4o-mini 模型名称
apiKeyHeader string Authorization API Key 所在请求头
apiKeyPrefix string Bearer API Key 前缀,留空则直接用原值
extraHeaders object {} 额外请求头
temperature number 0.2 采样温度
maxTokens number 2048 单次响应最大 token
requestTimeout number 120000 单次请求超时(毫秒)
useAgent boolean true 是否启用 Agent 模式
maxAgentSteps number 12 Agent 最大工具调用轮数
maxDiffChars number 60000 注入上下文的 diff 上限,超出自动折叠
language zh-CN | en-US zh-CN 输出语言
style enum conventional 提交信息风格
commitTypes string[] feat/fix/docs/... type 白名单
scopeHint string "" scope 取值范围提示
extraPrompt string "" 附加到系统提示词的自定义要求
subjectMaxLength number 72 标题最大字符数
includeBody boolean true 是否生成正文
writeToScmInput boolean true 生成后写入 SCM 输入框
autoStageAll boolean false 暂存区为空时自动暂存全部变更
excludePatterns string[] 锁文件/构建产物等 从 diff 中排除的 glob
logLevel enum info 日志级别

工作原理

侧边栏配置面板 / SCM 标题栏 / 快捷键
        │
        ▼
  收集仓库快照(分支、暂存区、工作区)
        │
        ▼
  Agent 循环 ──► 模型请求 (tools schema)
        ▲               │
        │               ├─ tool_calls ──► 执行本地工具(git / 文件 / 检索)
        │               │                      │
        └───────────────┴──────────────────────┘
                        │
                        └─ submit_commit_message ──► 结构化结果
                                                          │
                                        ┌─────────────────┴─────────────────┐
                                        ▼                                   ▼
                            写入 SCM 提交输入框                    直接 git commit

工具在扩展宿主进程内本地执行,diff 与文件内容只发送给你配置的模型服务;扩展本身不采集、不上传任何遥测数据。


开发与发布

npm install
npm run watch      # 或 npm run compile

按 F5 启动扩展开发宿主调试。

打包与发布:

npm install -g @vscode/vsce
vsce package                 # 生成 .vsix
vsce login <publisher-id>    # 首次发布需在 dev.azure.com 创建 PAT
vsce publish                 # 发布到 Marketplace

发布前请确认 package.json 中的 publisher 已改为你在 Marketplace 注册的 publisher ID,并补充 repository、icon 字段。


License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft