如何让posh git (oh-my-posh)正常显示代码仓库状态
Oh My Posh 应用主题后Git仓库状态显示缺失修复方案
修复步骤
方案1:修改主题配置打开Git状态展示开关
绝大多数该问题都是主题默认关闭了Git状态计数展示导致,按以下步骤修改:
- 导出当前使用的主题配置文件,执行对应命令:
- 首先查询当前加载的主题路径:
oh-my-posh config get - 导出配置为可修改的自定义文件:
oh-my-posh config export --config <上一步查到的主题路径> --output ~/my-custom-theme.omp.json
- 首先查询当前加载的主题路径:
- 打开导出的
my-custom-theme.omp.json文件,找到segments数组中type为git的配置块,修改其properties字段为以下内容,原有其他配置可保留:"properties": { "fetch_status": true, "display_status": true, "display_stash_count": true, "display_ahead_behind": true, "status_formatter": "{{ .Ahead }}{{ .Behind }}{{ .Staged }}{{ .Unstaged }}{{ .Untracked }}{{ .Stashed }}" } - 修改shell配置文件加载自定义主题:
- PowerShell:打开
$PROFILE文件,将原有oh-my-posh初始化行修改为:oh-my-posh init pwsh --config ~/my-custom-theme.omp.json | Invoke-Expression - Zsh:打开
~/.zshrc文件,修改初始化行为:eval "$(oh-my-posh init zsh --config ~/my-custom-theme.omp.json)" - Bash:打开
~/.bashrc文件,修改初始化行为:eval "$(oh-my-posh init bash --config ~/my-custom-theme.omp.json)"
- PowerShell:打开
- 重载shell配置或重启终端即可看到Git状态数值恢复展示。
方案2:排查环境变量禁用项
部分配置会通过环境变量关闭Git状态获取:
- 检查shell配置文件中是否存在
POSH_GIT_DISABLE_STATUS=1或者OHMYPOSH_DISABLE_GIT_STATUS=1这类配置,删除对应行后重载配置即可。
方案3:更新组件版本
旧版本posh-git和oh-my-posh存在Git状态渲染的已知bug:
- PowerShell环境执行:
Install-Module posh-git -Force更新posh-git,再执行对应系统的oh-my-posh更新命令即可。
内容的提问来源于stack exchange,提问作者gouder hicham
相关产品推荐
相关产品推荐

