必须同时配置terminal.integrated.defaultprofile.windows和terminal.integrated.profiles.windows,且profile名称、路径(指向git-bash.exe而非bash.exe)、参数(--login -i)三者严格一致;旧终端不热更新,需关闭所有终端后用ctrl+shift+新建。

直接改 terminal.integrated.defaultProfile.windows 不生效,是因为 VSCode 根本不知道 “Git Bash” 指的是哪个文件 —— 必须同时在 terminal.integrated.profiles.windows 里明确定义它,且路径必须指向 git-bash.exe,不是 bash.exe 或 sh.exe。
为什么改了设置还是打开 PowerShell
VSCode 不会把正在运行的终端“热切换”。你看到顶部标签页写着 PowerShell,说明那是旧终端实例,它不受新配置影响。只有新建的终端才走新规则。
- 关掉所有已打开的终端面板(点右上角 ×,不是最小化)
- 用
Ctrl+Shift+`新建终端,或命令面板执行Terminal: Create New Terminal - 不要点已有终端右上角的「+」——那是复用当前类型,不是新建默认类型
- 如果新建后仍是 PowerShell,说明
terminal.integrated.profiles.windows里的 profile 没注册成功,不是设置没保存,而是 JSON 格式错误或路径无效
profile 名称和路径必须严格匹配
settings.json 里这两处必须完全一致:"Git Bash" 这个字符串要一字不差地出现在 defaultProfile 的值里,也得作为 profiles.windows 对象的 key。
- 路径必须是
git-bash.exe,典型位置:C:/Program Files/Git/git-bash.exe(64 位默认)或C:/Users/{user}/AppData/Local/Programs/Git/git-bash.exe(便携/用户级) - 别用
bash.exe:它不加载 Git for Windows 的环境封装,git、ssh命令会报'git' is not recognized - 反斜杠要双写:
"C:\Program Files\Git\git-bash.exe",或直接用正斜杠更安全:"C:/Program Files/Git/git-bash.exe" - 如果 Git 装在非标路径(比如 D 盘、Scoop 管理),就填那个真实路径,别硬套 C 盘默认路径
让 .bashrc 生效、解决黑屏和中文乱码
VSCode 默认调用 git-bash.exe 时不加载 shell 初始化文件,导致别名、环境变量、路径映射(如 cd c:/xxx)异常,甚至出现 bash: /dev/tty: No such device or address。
- 在 profile 定义里加
"args": ["--login", "-i"],强制读取~/.bashrc - 如果仍乱码,检查系统区域设置是否为中文;Git Bash 自身启动正常但 VSCode 里乱码,大概率是字体问题,可在 settings.json 加
"terminal.integrated.fontFamily": "Consolas" - 别加
--no-startup-script:这是 VSCode 默认行为,但我们要的就是 startup script
最容易被忽略的其实是 profile 名称拼写(空格、大小写)、路径是否真能执行、以及「新建终端」这个动作本身 —— 它不是点击 + 号,而是彻底关闭再唤起。











