Git 使分支开关上的bash完成复位

Git 使分支开关上的bash完成复位,git,bash,git-bash,bash-completion,Git,Bash,Git Bash,Bash Completion,我有以下问题: 我已经设置了我当前所在的分支,它在我的命令提示符中显示如下: [当前工作目录]主目录 但是,每次切换分支时,我都会出现以下错误,并且该分支不会刷新: [work_environment] (master) git checkout test M bash/bashrc Switched to branch 'test' [work_environment] (master) My.bashrc如下所示: export PATH="$HOME/.rbenv/bin:$PAT

我有以下问题:

我已经设置了我当前所在的分支,它在我的命令提示符中显示如下:

[当前工作目录]主目录

但是,每次切换分支时,我都会出现以下错误,并且该分支不会刷新:

[work_environment] (master) git checkout test 
M   bash/bashrc
Switched to branch 'test'
[work_environment] (master)
My.bashrc如下所示:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"

# Bash git completion
source /etc/bash_completion.d/git-prompt

#Colored command prompt + minimum view
export PS1="\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] "

有人能告诉我我做错了什么吗?我似乎找不到有关此错误的任何信息

您的问题是这行的双引号:

export PS1="\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] "
该行将立即被评估,并且只调用一次_git_ps1

试试echo$PS1,看看我的意思

你需要单引号。PS1的值在使用前进行评估,以便在该点正确调用该函数并查看当前分支/etc

export PS1='\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] '

您的问题是这一行的双引号:

export PS1="\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] "
该行将立即被评估,并且只调用一次_git_ps1

试试echo$PS1,看看我的意思

你需要单引号。PS1的值在使用前进行评估,以便在该点正确调用该函数并查看当前分支/etc

export PS1='\[\e[0;34m\][\[\e[1;34m\]\W\\[\e[0;34m\]]\[\e[0m\]\[\e[0;32m\]$(__git_ps1)\[\e[0m\] '

在PS1声明周围使用单引号,而不是双引号。此时,对变量进行评估,然后将其设置为PS1。您希望每次使用PS1时都对它们进行评估。

在PS1声明周围使用单引号,而不是双引号。此时,对变量进行评估,然后将其设置为PS1。您希望每次使用PS1时都对它们进行评估。

我不确定问题出在哪里,但我已经在my.bashrc中导出了PS1='\[\e[38;5;22m\]\w:\[\e[00;0m\]$declare-F\uu git\u PS1&>/dev/null&&&uu git\u PS1\[\e[1;31m\]%s\[\e[00;0m\]:'”,它完成了这项工作。您可以更改颜色以适应您的口味。修改您的颜色,直到它让我使用\[34m\][\[\e[1;3400万\]\W]\[\e[0;320万\]$\uu吉特\uPS1\[\e[0m\]我想你只是在中间的某个地方混合了颜色代码。我更喜欢WD,因为它提供了完整的路径。问题是当我切换到另一个分支时,前面的分支名称仍然显示。更正一个以上两个例子都为meI更新了我不确定问题出在哪里,但我在my.bashrc中导出了PS1='\[\e[38;5;22m\]\w:\[\e[00;0m\]$declare-F\uu git\u PS1&>/dev/null&&&uu git\u PS1\[\e[1;31m\]%s\[\e[00;0m\]:',它完成了这项工作。你可以根据口味改变颜色。修改你的颜色,直到我用\[\e[0;34m\][\[\e[1;3400万\]\W][\e[0;320万\]$\u吉特\u ps1\[\e[0万\]我想你只是在中间的某个地方混合了颜色代码。我更喜欢WD,因为它提供了完整的路径。问题是当我切换到另一个分支时,前面的分支名称仍然显示。正确的一个以上两个例子都是meI的更新。我看了二十分钟,试图找出为什么我的有效,而他的无效。它最终点击,你提前三秒钟发布答案。+1我看了二十分钟,试图找出为什么我的有效,而他的无效。它最终点击,你发布answ呃,早了三秒