Ramificação e status do Git do prompt de comando colorido

Adicione a .bashrc ou .bash_profile para obter o status do branch git colorido.

Ao usar a CLI e fazer o cd em uma pasta git, o prompt terá a seguinte aparência:

me@MBP:[~/OneDrive/electronics/nixie-voltmeter] (master)
$

O branch atual do git é exibido entre ‘()’.
Quando há arquivos não rastreados ou arquivos prontos para serem testados, o nome do branch é VERMELHO.
Quando há arquivos testados prontos para serem confirmados, o nome do branch é AMARELO.
Quando não houver alterações, o nome do ramo ficará VERDE.

[ "$TERM" = "xterm" ] && TERM= "xterm-256color"

RED
="\[\033[0;31m\]"
YELLOW
="\[\033[0;33m\]"
GREEN
="\[\033[0;32m\]"
BLUE
="\[\033[1;34m\]"
NO_COLOUR
="\[\033[0m\]"
CYAN
="\[\033[0;36m\]"
PURPLE
="\[\033[0;35m\]"

function parse_git_branch () {
git branch
2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

function set_git_branch () {
# Capture the output of the "git status" command.

git_status
="$(git status 2> /dev/null)"
# Set color based on clean/staged/dirty.
if [[ ${git_status} =~ .*"working tree clean".* ]]; then
B_STATE
="${GREEN}"
elif [[ ${git_status} =~ .*"Changes to be committed".* ]]; then
B_STATE
="${YELLOW}"
else
B_STATE
="${RED}"
fi
}

prompt_cmd
() {
set_git_branch

PS1
="$NO_COLOUR\n\u@\h:[\w]${B_STATE}\$(parse_git_branch)$NO_COLOUR\n\$ "
}

PROMPT_COMMAND
="prompt_cmd"

Captura de tela 01-12-2019 às 1.01.43 PM.png