export PS1='($IP) [\!]\[\033[00;32m\]\u\[\033[01m\]@\[\033[00;36m\]\h\[\033[01m\]:\[\033[00;35m\]\w\[\033[00m\]\[\033[01;33m\]`git branch 2>/dev/null|cut -f2 -d\* -s`\[\033[00m\]\$ 'e.g
export PS1='($IP) [\!]\[\033[00;32m\]\u\[\033[01m\]@\[\033[00;36m\]\h\[\033[01m\]:\[\033[00;35m\]\w\[\033[00m\]\[\033[01;33m\]`git branch 2>/dev/null|cut -f2 -d\* -s`\[\033[00m\]\$ 'e.g
I wrote a tutorial a while back to try and get my head around DVC which is a distributed version control system for emacs which claimed GIT support. It's quite good but general concensus on the emacs IRC channel was that Magit was the easiest to use and had far better handling of staging and branching. Well, there's a new boy in two and he's the new cock of the walk.
See Egg for more details.
It has a colour coded interface with context help and "just works".
If you are using Git and need more than the Emacs built in Version Control interface to Git (present in Emacs 23) then I believe you could do a lot worse than Egg.
I need to update my Emacs page to recommend Egg.