Simplifique comandos no Git

Já executou aquele comando longo no Git várias e várias vezes? Isso pode ser um pouco trabalhoso, mas o Git te fornece uma opção para agilizar o uso no dia-a-dia, são os git alias.

Porque usar

Talvez você goste de escrever aquele comando cheio de argumentos repetidas vezes, ou se for como eu, prefere algo mais simples.

Os alias trazem simplicidade e produtividade pois nos permitem atribuir um comando longo a um nome definido por você, que é mais simples e memorizável.

Configuração

Os alias ficam nos arquivos de configuração do Git, ou seja, podem ser armazenados nas configurações locais (repositório), globals (do usuário) ou do sistema (da máquina, independente de usuário).

Por estarem localizados nos arquivos de configuração, usamos o comando git config para criá-los.

Neste texto, estarei usando as configurações globais com o argumento --global.

Para definir um novo alias usamos a seguinte sintaxe: git config --global alias.<nome> '<comando>'.

Supondo que você usa o comando git log -5 --oneline frequentemente, você pode criar um alias da maneira abaixo:

git config --global alias.log5 'log -5 --oneline'

Agora você pode usar o comando git log5 que terá o mesmo efeito que o comando git log -5 --oneline.

Apenas substituições

Se você notar, não é necessário escrever git log -5 --oneline ao configurar o alias, omitindo o git do comando.

A configuração é desta maneira pois no fundo, alias são apenas uma substituição. O Git irá substituir o nome pelo conteúdo.

Pensando que são apenas uma substituição, você pode evitar a criação de inúmeros alias e complementar os existentes.

Imagine que acabou de criar o alias log5 e em determinado momento precisa visualizar o grafo. Basta adicionar o argumento --graph ao final do comando.

git log5 --graph

Que será equivalente ao comando abaixo.

git log -5 --oneline --graph

Assim você pode encurtar alguns comandos longos e também complementá-los sempre que precisar.

Indo além das substituições

Os alias podem ser muito mais úteis do que meras substituições. Isto porque podemos configurá-los como comandos shell, e isto abre um leque de possibilidades, como a execução de um script complexo.

Inicie um novo alias com uma exclamação para que o Git execute o comanto ao invés de fazer a substituição.

Dica: Procure configurar seus comandos com aspas simples, assim seu terminal não interpretará o comando de forma indevida

Um alias que eu costumo configurar é o fetchb que faz um git fetch apenas do branch atual. Mas para descobrir qual branch estamos no momento, usamos o comando git rev-parse --abbrev-ref HEAD.

Então o fetchb é a combinação de dois comandos: um git fetch e um git rev-parse. Esta é uma ótima situação para usar um alias com o shell.

Note que por ser um comando shell, agora precisamos adicionar git no início dos comandos.

git config --global alias.fetchb '!git fetch origin $(git rev-parse --abbrev-ref HEAD)'

Podemos até invocar arquivos de script como no exemplo abaixo.

git config --global alias.pull-request '!~/scripts/pr.sh'

Conclusão

Este recurso do Git pode trazer muita produtividade, não só por substituir comandos longos (e talvez complexos) por nomes pequenos e memorizáveis, mas também por executar comandos shell que podem ser muito úteis no fluxo desenvolvimento.

Até mais.