在 Snow Leopard 上将 git 分支添加到 Bash 提示符中

在 Snow Leopard 上将 git 分支添加到 Bash 提示符中

我正在使用这个:

$(__git_ps1 '(%s)')

它可以工作,但是当我更改目录或签出新分支时它不会更新。我也有这个别名:

alias reload='. ~/.bash_profile'

示例运行:

user@machine:~/dev/rails$cd git_folder/
user@machine:~/dev/rails/git_folder$reload
user@machine:~/dev/rails/git_folder(test)$git checkout master
Switched to branch 'master'
user@machine:~/dev/rails/git_folder(test)$reload
user@machine:~/dev/rails/git_folder(master)$

如您所见,它已正确设置,但前提是我重新加载 bash_profile。我在这上面浪费了太多时间。我在雪豹上使用 bash。请帮忙!

编辑:你可以在 github 上看到我的点文件和设置 PS1 的文件这里

答案1

好的,问题解决了。

我在做:

export PS1="$(__git_ps1 '(%s)')"

我需要做:

export PS1="\$(__git_ps1 '(%s)')"

您需要转义美元符号,否则它只会运行一次并替换。

答案2

您可能需要使用$PROMPT_COMMAND

答案3

请注意,最新的 git 将 __git_ps1 移出 bash_completion,因此您需要单独获取它。请参阅https://superuser.com/a/477749/66255

相关内容