My $PS1 setup (depends on git-completion and bash-colors script sourced from (in my case) https://github.com/lilix/dot/tree/master/bin and otherwise installable elsewhere.
[ -n "$(which git-completion.sh 2> /dev/null)" ] && source git-completion.sh
[ -n "$(which bash-colors.sh 2> /dev/null)" ] && source bash-colors.sh
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWSTASHSTATE=1
export GIT_PS1_SHOWUNTRACKEDFILES=1
export GIT_PS1_SHOWUPSTREAM='auto'
export PS1="${BBlue}\h:${Color_Off}${BGreen}\w${Color_Off} \$(__git_ps1 \"${BPurple}(%s) ${Color_Off}\")${BIYellow}⚡${Color_Off} "