Meu PS1
-fu não é tão bom, mas acho que isso pode funcionar:
parse_git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'
}
parse_git_tag () {
git describe --tags 2> /dev/null
}
function git_prompt () {
local OUT=
local GIT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
if [[ -n $GIT_ROOT ]]
then
OUT=" @ $(basename '$GIT_ROOT')"
local GIT_BRANCH="$(parse_git_branch)"
if [[ "$GIT_BRANCH" == " ((no branch))" ]]
then
$GIT_BRANCH="($(parse_git_tag))";
fi
OUT="$OUT $GIT_BRANCH"
fi
echo $OUT
}
PS1="\u $(git_prompt) $ "
Efeito:
bro3886:~/devel$ bash
bro3886 $ cd
bro3886 $ cd devel/nlp/corpora
bro3886 @ nlp (master) $
Adaptado de Exibir filial do Git ou Marque Nomes em seu Bash Prompt e Estilo do Diretório de Prompt de Comando .