Identificando seu branch do git no prompt
by Ricardo Yasuda on September 11, 2008 15:39
Posted in git
Uma das coisas que mais me atraem no git é a facilidade de lidar com branches, ou seja, uma versão do seu repositório que não interfere no principal, que já está funcionando. Geralmente se usa para adicionar novas funcionalidades sem quebrar o código original, podendo fazer commit à vontade.
Pois bem, certas vezes vi alguns screencasts sobre Rails e git onde o prompt do terminal tinha o branch do git atual. Isso é muito útil para saber em que branch você está e lembrar você de fazer um branch em vez de alterar o master. Vi um tweet do Nando com o prompt dele alterado, e resolvi ir atrás. Sinceramente não lembro onde eu achei o código, mas segue ele aqui um pouco adaptado para o meu gosto, usando o bash:
function parse_git_branch {
git branch —no-color 2> /dev/null | sed -e ‘/^[^*]/d’ -e ‘s/* \(.*\)/(\1)/’
}
export PS1="\u@\h:\W \$(parse_git_branch)\$ "
Bom, PS1 é a variável de ambiente do bash que define o prompt. Aqui \u é o seu login, \h é o hostname (nome da sua máquina), \W é o diretório atual, e \$ no final é o símbolo de cifrão mesmo. A sacada aqui é o \$(parse_git_branch). Ele faz uma chamada para a função parse_git_branch definida acima.
E o que essa função retorna é justamente o seu branch atual entre parênteses, pegando a saída do comando git branch e usando expressões regulares para formatar a saída usando o sed. O primeiro parâmetro do sed pega o branch atual (que é o que tem o * na frente) e o segundo coloca somente o texto do branch entre parênteses.
Meu prompt ficou assim:

Tags: prompt, branch, git, terminal, regexp
You may also like:


Oi!
Eu havia comentado sobre isso algum tempo atrás:
http://eustaquiorangel.com/posts/git_bash_completion
Dê uma conferida lá que tem um monte de coisa legal no Git Bash Completion!
Olá TaQ!
Eu tinha lido esse seu post, mas não reparei na parte do prompt. Vou dar uma olhada no script.
Valeu!