DEV Community

Cover image for Apelidos no Git
João Vitor Retamero
João Vitor Retamero

Posted on • Originally published at joaoretamero.com.br

Apelidos no Git

Este post foi originalmente publicado em meu site pessoal

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.

Top comments (4)

Collapse
 
paulogoncalvesr profile image
Paulo Gonçalves

Muito bom João, embora seja algo simples, é um recurso do Git com grande poder de aumentar a produtividade.

Collapse
 
jvretamero profile image
João Vitor Retamero

É mesmo Paulo, o exemplo do pr.sh é um exemplo da vida real, pois onde trabalho, estamos automatizando o fluxo de pull request com um script que é chamado através do alias.

Collapse
 
paulogoncalvesr profile image
Paulo Gonçalves

Opa, acho que seria interessante falar desse case de automatizar o fluxo de PR, quais foram os problemas que os levaram a procurar uma solução, quais soluções analisaram além dessa e como está agora.
Fiquei bem interessado 😃

Thread Thread
 
jvretamero profile image
João Vitor Retamero

Ótima idéia! Como estamos experimentando, irei aguardar mais algumas semanas para aprendermos mais nessa jornada, quando tiver mais conteúdo eu compartilho ;)