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

问题描述 投票:0回答:2

我的(简体)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

预先感谢您查看此内容!

git bash unix prompt ps1
2个回答
5
投票

当您定义

__git_ps1
时,您正在运行 PS1
once
,并在以后的每个提示中使用相同的值。您希望每次显示提示时都运行该命令,因此您需要转义 $ 以防止立即发生命令替换。

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



0
投票
$(__git_ps1)

仅在第一次(当 PS1 被创建时?)评估,而不是在每次调用时评估(正如它应该的那样)。

    

© www.soinside.com 2019 - 2024. All rights reserved.