unix Bash Git提示符不会隐藏在存储库之外

alen0pnh  于 5个月前  发布在  Unix
关注(0)|答案(2)|浏览(72)

我的(简体)PS1:export PS1="\A \w\ $(__git_ps1) \$ "
提示:16:08-~/dev (master) $
这一切都很好,当有一个分支时,它会显示分支名称。但是在仓库之外,它仍然显示(master)而不是``。我一直在疯狂地搜索,但找不到答案。
你需要什么环境信息来帮助我解决这个问题?我对Bash还不是很熟悉。一定有什么地方不对劲。或者是我的Git版本有问题?

16:08 ~/dev (master) $ git --version
git version 2.7.4

字符串
提前感谢您来看看这个!

q9rjltbz

q9rjltbz1#

当你定义PS1时,你只运行__git_ps1 * 一次 *,并且在以后的每个提示符中使用相同的值。你想在提示符显示时 * 每次 * 运行该命令,所以你需要转义$以防止命令替换立即发生。

export PS1='\A \w\ $(__git_ps1) \$ '

字符串

xxhby3vn

xxhby3vn2#

问题是在原始版本中使用了双引号(而不是单引号)。这意味着$(__git_ps1)只在第一次(当PS1..创建时?)被计算,而不是在每次调用时(它应该)。

相关问题