Como usar aliases do Git: 10 exemplos essenciais

Git é uma ferramenta popular e poderosa e, possivelmente, o sistema de controle de versão de maior sucesso que já existiu. O poder do Git é evidente em seu conjunto de comandos. Atualmente, ele consiste em cerca de 150 comandos, do comum git-status ao obscuro git-get-tar-commit-id . Com cada comando suportando seu próprio conjunto de opções, há uma quantidade impressionante para lembrar.

Felizmente, o Git tem uma maneira de simplificar as coisas. Um alias Git pode atuar como um atalho para qualquer subcomando, com qualquer conjunto de opções. Com comandos externos, você pode usar invocações ainda mais poderosas. Aqui estão 10 dos apelidos mais úteis que você pode configurar.

Como definir um alias

Definir um alias é tão simples quanto seguir este padrão:

 git config --global alias.co 'checkout'

A opção –global define o alias para todo o uso do Git pelo usuário atual. Para fazer um alias se aplicar a todos os usuários do sistema, use –system ao invés. Para adicionar um apelido específico do repositório atual, use –local .

Se você souber onde está um arquivo de configuração, poderá editá-lo diretamente. A configuração do sistema está em um local global, normalmente / usr / local / etc / gitconfig . Sua configuração específica do usuário ficará em um arquivo em seu diretório inicial, como ~ / .gitconfig . A configuração local existe dentro de cada repositório, no arquivo .git / config .

Veja também: Como instalar e configurar o Git no Linux

1. Um alias para trocar de ramificação rapidamente

Dependendo do seu fluxo de trabalho, você pode alternar entre ramos muitas vezes ao longo de cada sessão de trabalho. Para aliviar um pouco o esforço e praticar com o tipo mais simples de alias, tente o seguinte:

 alias.co 'checkout'

Digitar git co feature1 agora mudará para o branch feature1 . O alias encurta o nome do subcomando, que continua a funcionar com argumentos extras.

2. Ver o status condensado

Por padrão, o comando git status produz uma saída detalhada. Ele explica o estado em detalhes, com informações úteis para qualquer pessoa não familiarizada com o Git. No entanto, se você deseja economizar espaço e já está familiarizado com a terminologia Git, convém configurar um alias para uma versão mais curta:

 alias.st status -sb

Esta é apenas uma variação muito pequena do git-status , mas a opção -s produz uma saída curta que torna as coisas muito mais breves. Terá algo como este status git padrão:

E produza isso em vez disso:

A opção -b mostra informações de ramificação e rastreamento que -s suprimiria de outra forma.

3. Mostrar registro de resumo

Git oferece muitas maneiras de inspecionar o histórico de um projeto por meio do comando git-log . Ele pode filtrar os commits que relata e pode exibir muitos dados diferentes associados a cada commit. Às vezes, no entanto, você deseja um registro o mais compacto possível. A opção –oneline fornece isso, mas é muito mais rápido criar um alias, já que é um que você pode usar com bastante frequência:

 alias.ll 'log --oneline'

A saída apresenta um commit por linha, com o título da mensagem de commit e um hash abreviado. Se parece com isso:

4. Desfazendo a última alteração

O comando git reset é valioso, mas não é o mais fácil de entender. Às vezes, você só quer um desfazer simples que leva de volta o último commit. A opção –soft garante que o Git remova apenas o último commit, sem alterar nada sobre os arquivos locais em sua árvore de trabalho. HEAD ~ 1 é simplesmente uma forma de referenciar o commit antes do HEAD.

 alias.undo 'reset --soft HEAD~1'

5. Registro do último compromisso

Se você está pegando um projeto do dia anterior, pode ser útil examinar o último commit. Com um alias git-log, você pode obter um relatório rápido e detalhado do último commit:

 alias.last 'log -1 HEAD --stat'

A opção -1 HEAD simplesmente solicita o último commit e –stat lista os arquivos que o commit afetou, com o número de linhas inseridas e deletadas para cada um.

6. Um Compromisso Fácil e Único

Você provavelmente se pegará adicionando arquivos e enviando-os na próxima etapa com bastante frequência. A menos que seu fluxo de trabalho seja mais complicado, convém simplificar esse processo com um alias:

 alias.ac '!git add -A && git commit'

Os componentes individuais não requerem muita explicação, além de observar que a opção -A passada para git-add atualizará automaticamente o índice para que todos os arquivos correspondam à cópia de trabalho. Ele atende à exclusão, modificação e criação de arquivos.

Uma coisa interessante a se notar sobre esse alias é que ele combina dois comandos. Ele faz isso usando o ! símbolo como o primeiro caractere do alias. Isso informa ao Git que o que se segue é um comando de shell externo em vez de um subcomando.

7. Formatação de Filial Extravagante

Outro comando com muita flexibilidade, git-branch pode formatar sua saída de muitas maneiras além do padrão esparso.

 alias.br "branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate"

Examine o formato do início ao fim. Observe que ele inclui muitos campos especiais. % (HEAD) adiciona um asterisco ao lado da ramificação atual.

Aliases são uma ótima maneira de experimentar a formatação de comandos como git-branch . Você desenvolverá preferências ao longo do tempo, portanto, é fundamental manter o controle de quais opções produzem sua saída preferida.

8. Resumindo as alterações por contribuidor

Uma variante do git log, git-shortlog agrupa os commits que exibe por autor. Isso é ideal para notas de lançamento ou simplesmente para ficar de olho em quem fez o que recentemente.

Algumas opções criam um resumo do autor para todos os fins muito conveniente, perfeito para uso regular por meio de um alias. A opção -e mostra endereços de e-mail além de nomes. A opção –summary apenas mostra uma contagem total ao invés do assunto de cada commit. E –numbered ordena a produção final pelo número total de contribuições. Você pode usar este alias:

 alias.contrib 'shortlog -e --summary --numbered'

Para produzir a seguinte saída:

9. Listar ramos classificados pela última modificação

Agora, para mais trabalho com branches, desta vez usando um subcomando de nível inferior. Este alias complicado é outro exemplo de um comando externo – um pipeline, neste caso. Primeiro, o comando git-for-each-ref faz um loop por todas as ramificações conhecidas. Ele faz isso em ordem autorizada e formata a saída para mostrar essa data junto com o hash de confirmação. Finalmente, ele usa o sed para retirar refs / heads / do nome de cada branch.

 alias.b '!git for-each-ref --sort="-authordate" --format="%(authordate)%09%(objectname:short)%09%(refname)" refs/heads | sed -e "s-refs/heads/--"'

Veja também: Estes exemplos Sed farão de você um usuário avançado do Linux

10. Um alias para mostrar todos os aliases

Com todo esse suporte para aliases, é surpreendente que o Git não ofereça uma maneira fácil de visualizar todos os aliases que você configurou. Não se preocupe, você pode consertar isso com um alias! O comando git config lista todas as configurações atuais. Você pode filtrar valores usando a opção –get-regexp , portanto, o seguinte alias oferece um comando git alias útil:

 alias.alias 'git config --get-regexp ^alias.'

Economize tempo e frustração com os aliases do Git

Os aliases do Git economizam tempo, eliminando a necessidade de digitar comandos longos e complicados. Git tem um grande número de subcomandos, mas os aliases são fáceis de reutilizar e manter. Você pode até mesmo agrupar aliases em seu projeto por meio da configuração local, permitindo que você compartilhe atalhos e práticas padrão.

Assim como os apelidos do Linux, os apelidos do Git permitem que você digite menos e faça mais. Tente experimentar os aliases acima e explore o conjunto completo de comandos do Git para ver a riqueza de funcionalidades disponíveis.