Apelidos 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.

Por que usar apelidos

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

Os apelidos trazem simplicidade e produtividade pois nos permitem atribuir um comando longo a um apelido, que é mais simples e memorizável.

Configurando apelidos

Os apelidos 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 do Git, usamos o comando git config para criá-los. Neste texto, estarei usando as configurações globais com o argumento --global.

Para definir um apelido, 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 apelido 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.

Apelidos são substituições

Se você notar, não é necessário escrever git log -5 --oneline ao configurar o apelido, omitindo o git do comando. A configuração do apelido é desta maneira pois no fundo, apelidos são apenas uma substituição. O Git irá substituir o nome do apelido pelo conteúdo.

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

Imagine que acabou de criar o apelido 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 apelidos podem ser muito mais úteis do que meras substituições. Isto porque podemos configurar apelidos com comandos shell, o que abre uma enorme quantidade de possibilidades, como a execução de um script complexo.

Basta iniciar os comandos dos apelidos com uma exclamação para que o Git não faça a substituição e execute o comando por completo.

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

Um apelido 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 apelido fetchb é a combinação de dois comandos: um git fetch e um git rev-parse. Esta é uma ótima situação para usar um apelido 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

Os apelidos no Git podem 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.