我的(简体)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_ps1
时,您正在运行 PS1
once,并在以后的每个提示中使用相同的值。您希望每次显示提示时都运行该命令,因此您需要转义
$
以防止立即发生命令替换。export PS1='\A \w\ $(__git_ps1) \$ '
$(__git_ps1)
仅在第一次(当 PS1 被创建时?)评估,而不是在每次调用时评估(正如它应该的那样)。