只是试图提高我对git的知识并使用提示和技巧,
我按照Tip PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
中的建议更新了我的.bashrc文件,但令我惊讶的是,我的git branch命令无法正常工作,即使我从.bashrc中删除它也不会工作我
每次,我都会使用命令提示符-bash: __git_ps1: command not found
获得任何指导或建议吗?
更新:我现在想摆脱它,我怎么能实现这个目标呢?
答案 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\] $ "