Вывод Git branch в подсказку командной строки

При активном использовании Git-а и переключений между разными ветками часто хочется видеть, в какой ветке находишься. Удобно добавить вывод названия branch-а в подсказку командной строки bash:

rb@rb-msi:~/projects/opencart-a4u (master)$ 

Для этого в ~/.bashrc находим строку, похожую на PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ':

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

и изменяем (я закомментировал старую строку и добавил новую):

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    # PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(git branch &>/dev/null; if [ $? -eq 0 ]; then echo " ($(git branch | grep '^*' |sed s/\*\ //))"; fi)\$ '
fi

Теперь при попадании в каталог внутри Git репозитория bash prompt будет показывать в скобках имя текущего branch-а, что выглядит примерно так:

rb@rb-msi:~/projects/opencart-a4u (master)$ 

UPD 2012-02-07: See also http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/