Show active git branch in bash prompt

I want the current git branch to show in the bash prompt.

This code is based on code provided here and here. I’ve combined aspects from both sites.

First, grab the code from here and copy it to ~/.gitcompletion.sh.

Add the following lines to the bottom of ~/.bshrc:

# Configure colors, if available.
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
c_reset='\[\e[0m\]'
c_user='\[33[1;33m\]'
c_path='\[\e[0;33m\]'
c_git_clean='\[\e[0;36m\]'
c_git_dirty='\[\e[0;35m\]'
else
c_reset=
c_user=
c_path=
c_git_clean=
c_git_dirty=
fi
# Function to assemble the Git part of our prompt.
git_prompt ()
{
if ! git rev-parse --git-dir > /dev/null 2>&1; then
return 0
fi
git_branch=$(__git_ps1 "%s")
if git diff --quiet 2>/dev/null >&2; then
git_color="$c_git_clean"
else
git_color="$c_git_dirty"
fi
echo " [$git_color$git_branch${c_reset}]"
}

export GIT_PS1_SHOWDIRTYSTATE="true"
source ~/.git-completion.sh
PROMPT_COMMAND='PS1="${c_user}\u${c_reset}@${c_user}\h${c_reset}:${c_path}\w${c_reset}$(git_prompt)\$ "'

That will do it. Just “source ~/.bashrc” from the keyboard to make the commands active. The changes will be automatically active in all new terminal windows.

Advertisements

About rico49

Writer, progresive activist, open source software developer. Working to meet the needs of under- and un-employed people globally and in the United States.
This entry was posted in Debian GNU/Linux, git. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s