You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oh My Posh配置疑问:如何判断Git仓库状态及获取仓库内路径

Oh-My-Posh 自定义配置问题解答

问题1:能否在其他段中使用{{ if .Git }}...{{ end }}这类条件判断?

可以。Oh-My-Posh的模板基于Go模板语法,支持在任意支持模板渲染的段(比如type: "text"类型的段)中使用该条件判断逻辑。处于Git仓库内时,.Git变量会被正常赋值;非仓库环境下,.Git为nil,条件分支会自动走else部分。

示例配置片段:

{
  "type": "text",
  "template": "{{ if .Git }}{{ .Git.UserName }}@{{ .Git.Branch }}:{{ .Git.Repo.Name }}{{ replace .System.Path .Git.WorkingDir "" }}{{ else }}{{ .System.UserName }}@{{ .System.Hostname }}:{{ .System.Path }}{{ end }}$"
}

问题2:能否获取Git仓库起始目录之后的路径?

可以。利用Go模板的字符串替换函数,结合.System.Path(当前完整路径)和.Git.WorkingDir(Git仓库根目录路径),就能提取出仓库内的相对路径部分。

模板写法示例:

{{ replace .System.Path .Git.WorkingDir "" }}

将这段嵌入Git环境的模板中,即可得到仓库根目录之后的路径。比如当前路径为~/my-repo/source/code,仓库根目录是~/my-repo,替换后会得到/source/code,完全匹配需求。

内容的提问来源于stack exchange,提问作者St-H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:57:07