你如何使用git完成来在文件夹更改时显示我当前的git分支?

时间:2012-07-19 12:46:43

标签: git bash

目前,如果我从已经包含git项目的文件夹中启动bash,这是有效的。

PS1="${debian_chroot:+($debian_chroot)}\[$BPurple\]\u\[$BGreen\]@\[$BCyan\]\h\[$BGreen\]: \[$BBlue\]\w\[$Yellow\]`__git_ps1`\[$Green\] \$ \[$White\]"

我的问题是,如果我cd进入git文件夹,则没有任何反应。然后,如果我开始使用git仓库,(其中(主)确实出现,如果我cd到其他任何地方,(主)仍然出现在我的提示中。

因此,PS1变量未更新。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

尝试用简单的引号替换双引号 几乎在使用变量的地方

PS1='${debian_chroot:+($debian_chroot)}'"[$BPurple]\u[$BGreen]@[$BCyan]\h[$BGreen]: [$BBlue]\w[$Yellow]__git_ps1[$Green] \$ [$White]"

答案 1 :(得分:0)

试试这个:

PS1='${debian_chroot:+($debian_chroot)}[$BPurple]\u[$BGreen]@[$BCyan]\h[$BGreen]: [$BBlue]\w[$Yellow]$(__git_ps1)[$Green] \$ [$White]'

我只是用单引号替换双引号,并在命令替换中将调用包装到__git_ps1。如果这不起作用(我的提示中暂时没有包含参数扩展),请尝试

PS1="..."'$(__git_ps1)'"..."

其中第一个'...'是'__git_ps1'之前的所有内容,第二个'...'是之后的所有内容。基本上,三个字符串连接在一起,第一个和第三个用双引号,第二个用单引号。