vscode终端默认是powershell而非git bash,因powershell是windows官方现代shell,具备更好系统集成能力;git bash为第三方兼容层,需手动配置路径并设为默认终端。

为什么 VSCode 终端默认是 PowerShell 而不是 Git Bash
VSCode 在 Windows 上默认使用系统 Shell,即 powershell.exe(或新版本的 pwsh.exe),而非你安装的 Git Bash。这不是 bug,而是设计选择:PowerShell 是 Windows 官方支持的现代 shell,具备更好的系统集成能力。Git Bash 是第三方兼容层(基于 MSYS2),需显式配置才能成为默认终端。
如何在 VSCode 中把默认终端设为 Git Bash
核心操作是修改 VSCode 的终端配置,指定 git-bash.exe 的完整路径,并设为默认配置项。关键点在于路径必须准确,且要区分 32/64 位、安装方式(Git for Windows 官方安装 vs Scoop/Chocolatey)。
- 先确认 Git Bash 是否已正确安装:打开任意文件夹,右键应有 Git Bash Here 选项;或在 CMD 中运行
where git-bash或手动查找git-bash.exe - 常见路径(请用资源管理器验证):
C:Program FilesGitinash.exe(旧版)或更推荐的C:Program FilesGitgit-bash.exe(新版 GUI 启动器) - 在 VSCode 中按
Ctrl + Shift + P,输入并选择Terminal: Select Default Profile,然后从列表中选Git Bash—— 如果没出现,说明 VSCode 没自动探测到,需手动添加 - 手动添加方法:打开设置(
Ctrl + ,)→ 搜索terminal.integrated.profiles.windows→ 点击“在 settings.json 中编辑” → 添加如下片段(注意逗号分隔和路径转义):
"terminal.integrated.profiles.windows": {
"Git Bash": {
"source": "Git Bash",
"path": "C:\Program Files\Git\git-bash.exe"
}
}
保存后再次执行 Terminal: Select Default Profile,就能选中并设为默认。
切换后终端启动空白 / 报错 “The terminal process failed to launch”
这是最常遇到的问题,根本原因几乎都是路径错误或权限/环境干扰。Git Bash 启动依赖其自身 runtime(如 msys-2.0.dll),若路径指向了 bash.exe 而非 git-bash.exe,或路径含空格未转义,就会失败。
- 绝对不要用
C:Program FilesGitinash.exe:它缺少 GUI 封装和环境初始化,VSCode 启动时容易卡死或报错 - 路径中的反斜杠必须双写(
\),单个在 JSON 中是非法转义符 - 如果 Git 安装在自定义路径(如
D:ToolsGit),必须填完整路径,不能省略或用%USERPROFILE%等变量 - 某些安全软件(如 Windows Defender 实时防护)会拦截
git-bash.exe初始化,可临时禁用测试;也可尝试以管理员身份重启 VSCode
Git Bash 默认不加载 ~/.bashrc?怎么让 alias 和环境变量生效
VSCode 启动的 Git Bash 是非登录 shell(--norc 行为),默认跳过 ~/.bashrc,导致你定义的 alias、export 全部失效。
- 解决办法:在 VSCode 设置中加参数,强制加载配置文件。修改
terminal.integrated.profiles.windows中的Git Bash条目,加入"args": ["--rcfile", "${env:USERPROFILE}/.bashrc"] - 完整示例:
"Git Bash": {
"path": "C:\Program Files\Git\git-bash.exe",
"args": ["--rcfile", "${env:USERPROFILE}/.bashrc"]
}
这样每次打开终端都会读取你的 .bashrc。注意 ${env:USERPROFILE} 是 VSCode 支持的环境变量语法,比硬编码路径更健壮。
路径、启动参数、配置加载这三处任一出错,都会导致终端不可用或功能残缺——建议改完 settings.json 后,先关闭所有终端页签,再新建一个测试,避免缓存干扰。











