如何在VS Code的Git Bash终端中获取美观的Git状态栏?
在VS Code的Git Bash终端配置美观Git状态栏的方法
嘿,我刚好折腾过这个!要在VS Code的Git Bash里弄出好看的Git状态提示栏,核心是自定义shell提示符(PS1),这里给你两种实用方案,按需选就行:
方案一:用Oh My Posh快速配置(懒人友好)
这是个现成的美化工具,自带超多带Git状态的主题,不用自己写复杂脚本:
- 首先在Git Bash里安装Oh My Posh:
winget install JanDeDobbeleer.OhMyPosh -s winget - 选一个你喜欢的主题(比如热门的
agnoster),把初始化命令追加到你的~/.bashrc配置文件中:oh-my-posh init bash --config "$HOME/.poshthemes/agnoster.omp.json" >> ~/.bashrc - 重启Git Bash终端,或者执行
source ~/.bashrc让配置立即生效。 - 最后在VS Code里调整字体:因为主题会用到特殊图标,得安装支持Nerd Fonts的字体(比如Meslo LG M DZ Regular Nerd Font),然后在VS Code设置里把
terminal.integrated.fontFamily改成这个字体的名字。
方案二:手动自定义PS1(适合喜欢折腾的)
如果不想装额外工具,自己写脚本也能实现轻量美观的Git状态提示:
- 打开Git Bash,编辑
~/.bashrc文件(如果没有就新建一个):nano ~/.bashrc - 把下面的代码粘贴进去,这个脚本会自动提取当前Git分支和状态(未提交、已暂存、未跟踪都会有不同标记):
# 定义Git分支和状态的解析函数 parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } parse_git_status() { local status=$(git status 2>&1) if echo "$status" | grep -q "Changes not staged"; then echo " ✗" elif echo "$status" | grep -q "Changes to be committed"; then echo " ✓" elif echo "$status" | grep -q "Untracked files"; then echo " ?" else echo "" fi } # 设置带颜色和Git状态的提示符 PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\] $(parse_git_branch)$(parse_git_status)\[\033[00m\] \$ ' - 按
Ctrl+O保存,Ctrl+X退出nano,然后执行source ~/.bashrc让配置生效。
小提示
- 确保VS Code的终端默认用Git Bash:在设置里搜索
terminal.integrated.defaultProfile.windows,选择Git Bash即可。 - 手动配置的话,还可以调整颜色代码(比如
\033[01;35m是紫色),改成你喜欢的配色风格。
内容的提问来源于stack exchange,提问作者happygoat




