I’m trying to change my command promt in terminal. I keep getting the error:
-bash: __git_ps1: command not found
I’ve tried it just by typing it into the terminal as is: __git_ps1. I’ve also tried it out in the .bash_profile
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
As you might be able to see/tell, yes, I do have the auto-completion installed and it does work great!
I came across this question: " PS1 env variable does not work on mac " which gives the code
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
So I add it to my .bash_profile hoping that it will change something. Well, it did. It just changed the error output.
Here’s the .bash_profile with the addition:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
And now here’s the changed error output:
sed: (%s): No such file or directory
Note: I’ve also moved the alias below the source with no difference. I have git version 1.7.12.1
This should be a simple change. Can someone please help me?
Edit 10/13/12
No, I definitely do not want to define __git_ps1 myself but was just trying to see if it would be recognized by doing so. Yes, I have the .git-completion.bash file installed. Here’s how I got auto completion on my machine.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
A ls -la then lists the .git-completion.bash file.
You’ve installed the version of
git-completion.bashfrommaster– in git’s development history this is after a commit that split out the__git_ps1function from the completion functionality into a new file (git-prompt.sh). The commit that introduced this change, which explains the rationale, is af31a456.I would still suggest that you just source the version of
git-completion.bash(orgit-prompt.sh) that is bundled with your installation of git.However, if for some reason you still want to use this functionality by using scripts separately downloaded from
master, you should downloadgit-prompt.shsimilarly:… and add the following line to your
~/.bash_profile:Then your
PS1variable that includes__git_ps1 '%s'should work fine.Geoff reported 10/13/12 adding the following to their
.bash_profileworked while others did not: