Achei extremamente útil exibir no shell bash o status do branch git em vez de usar
git branch
git diff HEAD
Aqui está minha implementação para o shell bash do openSUSE (coloque todas essas linhas em seu .bashrc)
c_red=`tput setaf 1`
c_green=`tput setaf 2`
c_sgr0=`tput sgr0`
parse_git_branch ()
{
if git rev-parse --git-dir >/dev/null 2>&1
then
gitver=$(git branch 2>/dev/null| sed -n '/^*/s/^* //p')
else
return 0
fi
echo -e " [$gitver]"
}
branch_color ()
{
if git rev-parse --git-dir >/dev/null 2>&1
then
color=""
if git diff --quiet HEAD 2>/dev/null >&2
then
color="${c_green}"
else
color=${c_red}
fi
else
return 0
fi
echo -ne $color
}
PS1='u@h:w[$(branch_color)]$(parse_git_branch)[${c_sgr0}]> '
Quando uma mudança está presente em sua cópia de trabalho ou em seu índice git, o nome do branch é colorido em vermelho, caso contrário, a cor é verde (estou assumindo que você usa o perfil do terminal com texto verde em fundo preto).