Git提示和技巧:在命令提示符下显示分支不工作,并产生Git分支功能不工作的副作用和许多其他问题

Git提示和技巧:在命令提示符下显示分支不工作,并产生Git分支功能不工作的副作用和许多其他问题,git,Git,只是想增加我对git的了解并使用技巧和技巧 我按照PS1='[\u@\h\W$(\uu git\u PS1”(%s)”)]\$中的建议更新了我的.bashrc文件 但令我惊讶的是,现在我的git branch命令不起作用,即使我将其从.bashrc中删除,它也不适用于我 而且每次使用命令提示符时,我都会得到-bash:\uu git\u ps1:command not found任何指导或建议 更新:我现在想摆脱它,我如何才能做到这一点?您启用了这些功能了吗?您可能已经在系统上找到了它们,只是没

只是想增加我对git的了解并使用技巧和技巧

我按照
PS1='[\u@\h\W$(\uu git\u PS1”(%s)”)]\$中的建议更新了我的.bashrc文件
但令我惊讶的是,现在我的git branch命令不起作用,即使我将其从.bashrc中删除,它也不适用于我

而且每次使用命令提示符时,我都会得到
-bash:\uu git\u ps1:command not found
任何指导或建议

更新:我现在想摆脱它,我如何才能做到这一点?

您启用了这些功能了吗?您可能已经在系统上找到了它们,只是没有启用

要确定它们是否处于打开状态,请键入
git
SpaceTab——如果您得到一个文件列表,则不需要完成,如果您得到一个命令列表,则需要完成(提示应该可以工作)

更新:一旦您从.bashrc中删除了该行,一旦您重新启动shell,您遇到的问题就会消失。仅仅重新获取文件是没有帮助的,因为它不会取消设置提示变量(而且在任何情况下,该变量在您重写它之前确实有一个值)。

通过搜索“\uuu git\u ps1”,我发现其中有:

git发行版中已经有一个函数可以实现这一点。如果你查一下来源 有一个名为contrib的目录,它有一个bash完成文件,可以为您提供 __git_ps1函数


所以听起来您需要找到contrib/文件并在bash配置文件中找到它

如果您正在使用mac,请尝试以下操作

sudo port selfupdate
sudo port install git-core +bash_completion
then 
cd /private/etc/
sudo vi bashrc
and add the next
source /opt/local/share/doc/git-core/contrib/completion/git-completion.bash
if [ -f /opt/local/etc/bash_completion ]; then
   . /opt/local/etc/bash_completion
fi

export PS1='\w $(__git_ps1 "\[\e[31m\]:%s")\[\e[0m\] > '

我认为git的最新版本将git-completion.bash中的提示函数拆分为一个单独的prompt.sh文件。。。我不得不在我的bash概要文件中添加一行源代码,以包含提示文件,只有这样,我才摆脱了uuu git_ps1 not found投诉

这对我有用 只需转到您的bash配置文件vi~/bash\u配置文件 然后粘贴这个

parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\u@\h \[\033[32m\]\w - \$(parse_git_branch)\[\033[00m\] $ "

是的,您需要在
.bashrc
中找到Git的bash完成文件的源代码。再详细一点的解释就好了。