zen of coding

Show git branch in your bash prompt

Quite a convenient little snippet. Thought I would share it with all my dear readers and git lovers.

(Thanks to the original author, whom I cannot remember right now. I’ll gladly post the link to the original source if someone reminds me)

Add the snippet below to your .bash_profile
(Don’t forget to “source” the file if need be).

And now your bash will look something like:
$ /usr/home/teknoid/some-git-project(master)

Where, “(master)” is of course the git branch name you are currently working with. (Hey, picking of colors is up to you ;))

Enjoy.

#showing git branches in bash prompt
function parse_git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}

function proml {
  local         RED="\[\033[0;31m\]"
  local   LIGHT_RED="\[\033[1;31m\]"
  local      YELLOW="\[\033[0;33m\]"
  local LIGHT_GREEN="\[\033[1;32m\]"
  local       WHITE="\[\033[1;37m\]"
  local  LIGHT_GRAY="\[\033[0;37m\]"
  local LIGHT_PURPLE="\[\033[1;34m\]"
  case $TERM in
    xterm*)
    TITLEBAR='\[\033]0;\u@\h:\w\007\]'
    ;;
    *)
    TITLEBAR=""
    ;;
  esac

PS1="${TITLEBAR}\
$LIGHT_PURPLE\w$YELLOW\$(parse_git_branch)\
\n$LIGHT_GRAY\$ "
PS2='> '
PS4='+ '
}
proml
  • I found this one a little while ago, take it to a whole new level :)

    shows if you have commits to push, if there are changes in the working tree and big warnings for detached head (handy for submodules) screen shot included in the link

    https://gist.github.com/634750

  • teknoid

    @dogmatic69

    Awesome. thanks.

  • Pingback: Tweets that mention Show git branch in your bash prompt¬†|¬†nuts and bolts of cakephp -- Topsy.com()

  • pi3r

    Thanks, that’s really cute :)

  • Anonymous bin Ich

    How about this:

    function parse_git_branch {
    echo “($(git branch –no-color 2> /dev/null | cut -d” ” -f2-))”
    }

    • Ira

      returns ALL the branches (I have almost 50 in one project). you want only the active one.

  • Dave

    An even easier way to get the branch is:
    git branch –no-color 2> /dev/null | grep ‘*’ | awk ‘{print $2}’

%d bloggers like this: