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.

Edit 10/13/12 – Solved by Mark Longair (below)

The following code worked for me in the .bash_profile while others did not…

if [ -f ~/.git-prompt.sh ]; then
  source ~/.git-prompt.sh
  export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi

21 Answers
21

Leave a Reply

Your email address will not be published. Required fields are marked *