Git技巧和窍门:在命令提示符上显示分支不起作用,并创建了git分支功能不起作用的副作用和许多其他功能

时间:2010-02-09 17:53:20

标签: git

只是试图提高我对git的知识并使用提示和技巧,

我按照Tip PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' 中的建议更新了我的.bashrc文件,但令我惊讶的是,我的git branch命令无法正常工作,即使我从.bashrc中删除它也不会工作我

每次,我都会使用命令提示符-bash: __git_ps1: command not found获得任何指导或建议吗?

更新:我现在想摆脱它,我怎么能实现这个目标呢?

5 个答案:

答案 0 :(得分:13)

您是否启用了git bash-completion功能?您可能已在系统上找到它们,但尚未启用。

要确定它们是否打开,请键入git 空格 标签 - 如果您获得了文件列表,则不会完成,如果你得到一个命令列表,你做(并且你的提示应该工作)。

更新:从.bashrc中删除该行后,一旦重新启动shell,您遇到的问题就会消失。仅仅重新获取文件将无济于事,因为它不会取消设置提示变量(在任何情况下,该变量在您覆盖它之前都有一个值)。

答案 1 :(得分:3)

通过Google搜索“__git_ps1”,我发现the first result说:

  

在git发行版中已经有了一个功能。如果你看看来源   有一个名为contrib的目录,它有一个bash完成文件,可以给你一个   __git_ps1功能。

听起来你需要找到contrib / file并在你的bash配置文件中找到它!

答案 2 :(得分:1)

如果您使用的是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\] > '

答案 3 :(得分:1)

我认为最新版本的git将提示函数从git-completion.bash拆分为一个单独的prompt.sh文件...我必须在我的bash配置文件中添加一个源代码行以包含该提示文件,然后才会我没有找到__git_ps1没有找到投诉。

答案 4 :(得分:0)

这对我有用 只需转到你的bash配置文件vi~ / bash_profile 并粘贴此

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\] $ "