Aumentando a produtividade com o git

Já sabemos que utilizar o git facilita muito a nossa vida, mas será que ele já faz isso da melhor maneira possível? No começo, utilizar o git pode ser meio custoso até que todos da equipe tenham se ambientado a ele. Como podemos melhorar isso? Não é muito difícil, com simples modificações em seu terminal podemos melhorar muito nosso entendimento sobre o git e, consequentemente, nossa produtividade!

Cada empresa ou até mesmo equipes podem utilizar o git de maneiras diferentes, mas o mais comum é a utilização de branches. Para quem esta aprendendo, isso pode ser difícil de se entender e neste post vamos realizar uma pequena modificação que nos ajudará bastante.

Mostrar a branch automaticamente

Para deixar o git mais intuitivo, o primeiro passo é deixá-lo um pouco mais colorido e mostrando em qual branch estamos trabalhando, com este comando fica bem simples:


function git_nome_branch () {
git branch 2>/dev/null | grep -e '^*' | sed -E 's/^\* (.+)$/(\1) /'
}


PS1="\[\033[01;32m\]\u@\h:\[\033[01;34m\]\w\[\033[31m\]\$(git_nome_branch)\[\033[m\]$"

Captura de Tela 2015-05-19 às 16.22.11

Você pode executar este comando em seu terminal para testar como vai ficar, se não gostar e quiser desfazer essa alteração é só fechar o shell. Caso tenha gostado e queira manter essa alteração, basta colocá-la no arquivo ~/.bashrc ou ~/.bash_profile, e apenas isso aumentará muito nossa produtividade, mas só é útil para quem trabalha com mais de uma branch.

Informações rápidas sobre o status

Para melhorar ainda mais nossa vida, podemos fazer algumas coisinhas a mais, como por exemplo instalar um novo shell para o terminal com temas melhores e mais avançados como por exemplo o Zsh, que pode ser instalado por um simples apt-get:

sudo apt-get install zsh

Deixando o Zsh como nosso shell padrão basta selecioná-lo como /bin/zsh e poderemos aumentar o seu poder com o framework Oh My Zsh, que possui vários temas e funcionalidades diferentes:

Curl:

curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh

ou

Wget:

wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh

Para modificar seu tema, abra o arquivo ~/.zshrc, nele já haverá muitas opções para deixar seu terminal mais poderoso, basta trocar esta linha pelo tema que preferir:

ZSH_THEME="<nome_do_tema>"

Lembrando que ainda é possível alterar as cores e fontes do terminal para ter uma interface ainda melhor ou usar alguns temas pré-definidos para o Zsh.

Exemplos de temas para o Zsh

ZSH_THEME="robbyrussell"
Note que o nosso terminal agora mostra um “x” informando que existem arquivos não adicionados pelo git:

Captura de Tela 2015-05-21 às 14.11.29

Captura de Tela 2015-05-21 às 14.17.07

ZSH_THEME="apple"
Neste tema o terminal mostra um “+” para informar que existem arquivos adicionados mas não commitados:

Captura de Tela 2015-05-21 às 13.58.19

Captura de Tela 2015-05-21 às 14.19.32

ZSH_THEME="miloshadzic"
Este tema é parecido com o primeiro, porém é mostrado um “raio” quando um arquivo é adicionado:

Captura de Tela 2015-05-21 às 14.08.08

Captura de Tela 2015-05-21 às 14.23.19

Esses foram só alguns exemplos de temas dentre os diversos temas disponíveis para o Zsh, que apesar de serem bem variados devemos tomar cuidado para que nosso terminal não fique muito poluído com excesso de informações.

Quais outras ferramentas você usa para melhorar sua produtividade com o git?

12 Comentários

  1. Renato 30/06/2015 at 16:49 #

    Parabéns pelo post. Alterar o shell facilita muito o uso do Git mesmo. Só um detalhe, no exemplo que você colocou acho que o nome da função está errada quando você setta a variável PS1, o nome da função é “git_mostra_nome_branch” e na variável está “git_nome_branch”. Pode confundir alguém isso.

  2. Daniel Faria 01/07/2015 at 08:40 #

    Excelente post. Quando eu comecei a usar GIT não havia plugins maduros que integrasse com minha na época usava o Eclipse. Hoje este cenário mudou?

  3. Diego Saouda 01/07/2015 at 09:50 #

    Eric, ótimo post.
    Só encontrei um problema no nome da função em utilização.

    Aonde:
    PS1=”\[33[01;32m\]\u@\h:\[33[01;34m\]\w\[33[31m\]\$(git_nome_branch)\[33[m\]$”

    Trocar para:
    PS1=”\[33[01;32m\]\u@\h:\[33[01;34m\]\w\[33[31m\]\$(git_mostra_nome_branch)\[33[m\]$”

    Abs,
    Diego

  4. Cleiton Rodrigues 01/07/2015 at 11:02 #

    Olá Erick,

    Parabéns pelo post, bem interessante e muito útil.
    Uma pequena correção:

    O nome da função é git_mostra_nome_branch. Acredito que tenha ocorrido um equívoco na chamada da função no trecho abaixo.

    PS1=”\[33[01;32m\]\u@\h:\[33[01;34m\]\w\[33[31m\]\$(git_nome_branch)\[33[m\]$”.

    Abraço!

  5. Eric Camargo 01/07/2015 at 11:43 #

    Que bom que gostou e muito obrigado pelo toque, ja arrumei.
    Abraços!

  6. Eric Camargo 01/07/2015 at 11:45 #

    Obrigado Diego,
    Realmente passou batido, obrigado pelo aviso!
    Abraços!

  7. Eric Camargo 01/07/2015 at 11:51 #

    Muito obrigado Renato,
    Já corrigi o erro, valeu pelo aviso!
    Realmente era bem fácil de alguém se confundir.
    Abraços.

  8. Rodrigo Peleias 03/07/2015 at 09:24 #

    Ótimo post Eric!!

    Também uso o zsh com o oh-myzsh, e vejo as vantagens em utilizá-lo, principalmente em relação ao Git, por mostrar a branch que estamos e o status atual do histórico de commits. O tema que uso é o “powerline”, mas também já experimentei outros, tão produtivos o quanto.

    Abraços,

  9. Eric Camargo 03/07/2015 at 14:30 #

    Existem muitos outros, mas o meu preferido realmente é o zsh com oh-myzsh.
    O powerline é um dos meus preferidos também.
    Abraços.

  10. Leonardo 15/07/2015 at 11:50 #

    Muito boa a dica, também uso o zsh no meu dia-a-dia.

    Acho que você poderia trocar o título do post, pois cheguei aqui achando que iria ver alguma nova tecnica ou workflow para trabalhar com o git.

Deixe uma resposta