oh-my-posh在Git目录运行缓慢,关闭状态配置仍无改善如何解决
Oh My Posh Git仓库目录卡顿优化方案
1. 优化Git本身的运行性能
这是Windows平台下Git查询慢的核心诱因,优先操作:
- 升级Git for Windows到最新正式版,新版本对Windows文件系统的查询逻辑做了大量性能优化,普遍能降低50%以上的状态查询耗时
- 开启Git全局文件系统缓存,执行命令:
git config --global core.fscache true - 对于存在大量未跟踪文件的仓库,可在仓库本地配置中添加忽略规则,减少扫描范围
2. 精简Oh My Posh Git分段的配置
你之前关闭的三个参数对性能影响很小,需要额外添加以下配置到Git段的properties中:
"properties": { "fetch_status": false, "ignore_submodules": true, "modified_count_enabled": false, "untracked_files_mode": "no", "display_status": false, "display_stash_count": false, "display_upstream_icon": false }
其中fetch_status默认开启会每次查询远程分支同步状态,是卡顿的最常见原因,关闭后仅查询本地分支信息,耗时会大幅降低。
3. 开启Git状态缓存
在配置文件的根级别(和blocks、final_space同级)添加缓存配置,缓存Git查询结果避免重复执行耗时操作:
"caches": [ { "type": "git", "duration": "10m" } ]
缓存会在Git操作(提交、切换分支、拉取代码)后自动失效,不会显示错误信息,默认缓存10分钟可根据自己的使用习惯调整时长。
4. 可选:按需加载Git分段
如果不需要时刻显示Git信息,可以给Git段添加触发条件,避免默认执行Git查询:
在Git段配置中添加template字段:
"template": "{{ if .Env.SHOW_GIT }}{{ .Branch }}{{ end }}"
需要显示Git信息时执行$env:SHOW_GIT = 1,不需要时执行$env:SHOW_GIT = 0即可从根源避免Git查询耗时。
内容的提问来源于stack exchange,提问作者PalBo
相关产品推荐
相关产品推荐

