shadowmaru.org

Vai tomar café

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:

Tweetbacks

Tweet this post

    Comments

    1. TaQ said about 1 year ago

      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!

    2. shadow said about 1 year ago

      Olá TaQ!

      Eu tinha lido esse seu post, mas não reparei na parte do prompt. Vou dar uma olhada no script.

      Valeu!

    Write a comment

    Google Analytics Alternative