Formatação de caminho e Git Branch em bash_profile

Isso ajuda muito. Ele mostrará o caminho em que você está, a hora atual e o branch git (se estiver em um repositório git) em que está trabalhando.

O resultado no bash_prompt deve ser semelhante a: [1: 0: 502] [$ USER @ hostname:] [~] [git_branch]

if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
c_reset
=`tput sgr0`
c_user
=`tput setaf 2; tput bold`
c_path
=`tput setaf 4; tput bold`
c_git_clean
=`tput setaf 2`
c_git_dirty
=`tput setaf 1`
else
c_reset
=
c_user
=
c_path
=
c_git_clean
=
c_git_dirty
=
fi

git_prompt
() {
if ! git rev-parse --git-dir > /dev/null 2>&1; then
return 0
fi

git_branch
=$(git branch 2>/dev/null| sed -n '/^*/s/^* //p')

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 PS1="[33[0;32m]u@h[33[0;39m]:[33[0;35m]w[33[0;39m]$"
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Shell prompt format => [1:0:502][$USER@hostname:][~] [git_branch]
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
AAPS
[0]="ne[1;30m[e[0;37m${SHLVL}e[1;30m:e[0;37mj:!e[1;30m][e[1;34mue[0;34m@e[1;34mhe[1;30m:e[1;37m${SSHTTY//dev/}e[1;30m]e[0;37m[e[0;37mwe[0;37m]$(git_prompt)e[1;37mn[${R}]$ ";
AAPS
[1]='ne[1;30m[e[0;37m${SHLVL}e[1;30m:e[0;37mj:!e[1;30m][e[0;32mue[1;32m@e[0;32mhe[1;30m:e[1;37m${SSHTTY//dev/}e[1;30m]e[0;37m[e[0;37mwe[0;37m]e[1;37mn[${R}]$ ';
AAPS
[2]='ne[1;30m[e[0;37m${SHLVL}e[1;30m:e[0;37mj:!e[1;30m][e[0;35mue[1;35m@e[0;35mhe[1;30m:e[1;37m${SSHTTY//dev/}e[1;30m]e[0;37m[e[0;37mwe[0;37m]e[1;37mn[${R}]$ ';
: ${PLVL=0};
[[ "${#AAPS[@]}" -lt "$PLVL" || "${#AAPS[@]}" -eq "$PLVL" ]] && PLVL=0;
export PS1=${AAPS[$PLVL]} && (( PLVL++ )) && export PLVL;