先确认终端能运行git --version,再配置git.path为C:/Program Files/Git/bin/git.exe并完全重启VSCode;若仍失败,需检查PATH继承、启动方式及Git安装选项是否正确。

VS Code 找不到 git.exe?先确认终端能跑通再谈配置
90% 的“Git 不工作”不是 VS Code 问题,是它根本没连上系统 Git。打开内置终端(Ctrl + `),直接输 git --version —— 如果报 command not found,后面所有设置都白搭。
常见原因和解法:
- Git 确实没装:去
https://git-scm.com/downloads下 Windows 版,安装时勾选Git from the command line and also from 3rd-party software - PATH 没继承:VS Code GUI 启动时可能拿不到 shell 的 PATH(尤其 PowerShell 或 WSL 用户),别依赖终端能跑就默认 OK
- 路径选错:Windows 下必须用
C:/Program Files/Git/bin/git.exe,不是cmd/git.exe;后者缺 SSH 支持,推送到 GitHub/Gitee 时会在认证环节卡死
最稳的兜底方式:手动设 git.path。打开设置(Ctrl + ,),搜 git.path,填绝对路径,保存后必须完全退出 VS Code(关所有窗口)再重开,热重载不生效。
为什么 SCM 面板灰显、分支名不显示?
SCM 视图灰掉、右下角不显示当前分支、点击按钮无反应——本质是 VS Code 没识别到 Git 仓库上下文,或压根没找到 Git 可执行文件。
验证方法:
- 按
Ctrl + Shift + P输入Git: Show Git Output,看输出面板里有没有类似Using git 2.40.1 from C:/Program Files/Git/bin/git.exe的行 - 如果显示
Git not found或路径为空,说明git.path没配对,或路径指向了不存在的文件 - 新建一个空文件夹,在里面执行
git init,再用 VS Code 打开这个文件夹,看 SCM 是否亮起
注意:git init 必须在项目根目录执行;VS Code 打开的是子目录(比如 src/)也会导致 SCM 不识别仓库。
VS Code 默认终端为啥要切 Git Bash?
Windows 自带 CMD/PowerShell 对 ls、grep、ssh、管道、通配符等 Unix 工具支持弱,日常 Git 操作容易出错或写法冗长。
Git Bash 是 Windows 上最接近原生 Linux 终端的方案,且自带完整 Git 工具链。配置为默认终端后,git status、git add -p、git log --graph 等命令行为和 Linux/macOS 完全一致,不用额外适配。
配置步骤(三选一):
- 快捷法:按
Ctrl + Shift + P→ 输入Terminal: Select Default Profile→ 选Git Bash - 精准法:先用快捷方式属性或
where git查到真实路径(如D:\software\Git\git-bash.exe),再在设置里搜terminal.integrated.profiles.windows,添加 profile 条目并设为默认 - 检查法:打开新终端后,左上角下拉菜单是否显示
Git Bash,且提示符是user@PC MINGW64 ~而非PS或C:\>
注意:如果列表里没有 Git Bash,说明 VS Code 没扫描到它——大概率是 Git 安装路径含中文、空格,或安装时没勾选“Add Git to PATH”选项。
暂存和提交总出错?别只点左侧面板那个“+”
SCM 面板左上角的“+”图标不是 git add -A,它只跟踪「从未被 Git 记录过的文件」。改过的、删掉的、重命名的文件,它一律忽略——这不是 bug,是设计如此。
正确做法:
- 想暂存所有变更:右键任意已修改文件 →
Stage Changes,或用命令面板运行Git: Stage All - 想丢弃某几行修改(不是整个文件):在 SCM 中点开该文件,hover 到改动行右侧出现
⋯→Revert Selected Ranges - 提交时输入框支持多行,
Ctrl + Enter提交;勾选git.alwaysSignOff可自动加Signed-off-by
合并冲突时特别小心:Accept Current Change 按钮在右边,但右边是“你本地的代码”,左边才是“远端来的变更”。点错等于把刚写的逻辑全删掉——建议先看清左右标签再点。
Git 配置真正难的不是记命令,而是搞清哪一层(--system / --global / --local)在起作用、VS Code 的 GUI 进程是否继承了 shell 环境变量、以及每个 UI 按钮背后实际调用的是哪个 Git 命令。这些细节不摸透,换台电脑、升个版本、换个项目,问题就又冒出来。


















