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:
blog comments powered by Disqus
