VS Code内置Git Bash运行缓慢且重复显示分支名的问题咨询
问题背景
仓库zoom-tool,分支main,在VS Code的Git Bash终端执行python、ls等命令时速度极慢,命令执行后会输出乱码格式的分支名:>>> om-tool\x1b[36m (main)\x1b[0m\x0d\x0a$。用export GIT_TRACE2_PERF=1追踪发现存在重复追踪,重装Git和VS Code无效,但外部独立Git Bash运行正常。
解决步骤
调整VS Code终端集成配置
打开VS Code设置(快捷键Ctrl+,),搜索terminal.integrated.profiles.windows,修改Git Bash的配置为直接调用bash.exe,避免加载冗余的Git Bash启动逻辑:"terminal.integrated.profiles.windows": { "Git Bash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe", "args": [] } }, "terminal.integrated.defaultProfile.windows": "Git Bash"同时关闭
terminal.integrated.enablePersistentSessions选项,防止会话残留导致重复加载。修复Git Bash提示符配置
打开Git Bash的~/.bashrc(或~/.bash_profile,无则新建),检查是否存在重复的Git分支提示符脚本。可以替换为简洁的基础提示符:PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '或者禁用Git自动分支提示的额外检测:
export GIT_PS1_SHOWDIRTYSTATE=0 export GIT_PS1_SHOWUNTRACKEDFILES=0 export GIT_PS1_SHOWUPSTREAM=0排查VS Code Git扩展与配置冲突
暂时关闭git.enableSmartCommit、git.autofetch等VS Code内置Git增强功能;禁用GitLens等第三方Git扩展,确认是否是扩展导致的重复Git操作。清理Git追踪配置
在Git Bash中执行unset GIT_TRACE2_PERF取消追踪配置,再用git config --list --global检查全局Git配置,确认没有异常的core.hooksPath等可能导致重复执行的配置项。
原因说明
VS Code内嵌终端会额外加载自身的环境变量和集成逻辑,和Git Bash原生的分支提示符脚本、Git配置发生冲突,导致重复执行Git分支状态检测等操作,既拖慢了命令执行速度,又造成了提示符输出乱码。而独立Git Bash没有VS Code的额外集成逻辑,因此运行正常。
内容的提问来源于stack exchange,提问作者Cloud blue

