__git_ps1 显示错误的分支

__git_ps1 shows wrong branch

我遇到了 __git_ps1 脚本 returns 错误分支的问题。

首先,我会检查我的分支机构:

ssalisbury@DOTWeb ssalisbury (master)$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

然后我将创建并签出一个新分支,__git_ps1 脚本仍然会显示我在我原来的分支上:

ssalisbury@DOTWeb ssalisbury (master)$ git checkout -b newBranch
Switched to a new branch 'newBranch'
ssalisbury@DOTWeb ssalisbury (master)$ git branch -a
  master
* newBranch
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
ssalisbury@DOTWeb ssalisbury (master)$

我已经能够确定它显示的是同一台机器上的另一个存储库签出的分支,尽管我不明白为什么。我如何确保它显示我所在的存储库的信息?

我的PS1如下:

\[\e[1;32m\]\u\[\e[0;33m\]@\h \[\e[1;36m\]\W\[\e[1;33m\]$(__git_ps1 " (%s)")\[\e[1;32m\]$ \[\e[0m\]

PS1 字符串由登录脚本创建。以下是该脚本的相关行:

BGreen='\e[1;32m'       # Green
Yellow='\e[0;33m'       # Yellow
BCyan='\e[1;36m'        # Cyan
BYellow='\e[1;33m'      # Yellow
BGreen='\e[1;32m'       # Green
Color_Off='\e[0m'       # Text Reset

export PS1='\['$BGreen'\]\u''\['$Yellow'\]@\h ''\['$BCyan'\]\W''\['$BYellow'\]$(__git_ps1 " (%s)")''\['$BGreen'\]$ ''\['$Color_Off'\]'

问题是我使用别名 test 将目录更改为另一个存储库。我忘记了 test 是一个命令行实用程序,__git_ps1 使用它。当 __git_ps1 尝试使用 test 时,它正在将目录更改为另一个存储库。

通过删除该别名解决了该问题。