Aliases no Git que aceleram o fluxo de trabalho diário

1. Introdução aos Aliases no Git

Aliases no Git são atalhos personalizados que substituem comandos longos e repetitivos por versões curtas e memorizáveis. Em vez de digitar git commit --all --message "correção", você pode usar git ca "correção". A economia de tempo é pequena por comando, mas acumulada ao longo do dia representa horas de produtividade recuperadas.

A configuração é feita diretamente no terminal ou editando o arquivo .gitconfig. O comando básico para criar um alias global é:

git config --global alias.st status

A partir desse momento, git st equivale a git status. Para aliases locais (apenas no repositório atual), remova a flag --global. O arquivo .gitconfig fica em ~/.gitconfig (Linux/macOS) ou C:\Users\SeuNome\.gitconfig (Windows) e pode ser editado manualmente para organizar os aliases em seções.

2. Aliases para Navegação e Status Rápido

Navegar pelo repositório e verificar o estado atual são tarefas constantes. Estes aliases reduzem o tempo gasto com digitação:

git config --global alias.st "status -sb"
git config --global alias.br "branch -a"
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.tree "log --graph --oneline --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'"
git config --global alias.df "diff --staged"
git config --global alias.last "log -1 HEAD --stat"
  • git st mostra status resumido com branch atual e arquivos modificados
  • git br lista todas as branches (locais e remotas)
  • git lg exibe um gráfico visual do histórico com cores
  • git tree versão mais detalhada do log com autor e data relativa
  • git df diff dos arquivos em staging
  • git last detalhes completos do último commit

3. Aliases para Commits e Staging Ágeis

Commits frequentes são a base de um bom fluxo Git. Estes aliases eliminam etapas redundantes:

git config --global alias.ci "commit"
git config --global alias.ca "commit -a -m"
git config --global alias.aa "add -A"
git config --global alias.amend "commit --amend --no-edit"

Uso prático:

git aa
git ca "Implementa validação de email no formulário"
git amend  # corrige último commit mantendo a mensagem original
  • git ci atalho simples para commit (útil para git ci -m "msg")
  • git ca adiciona automaticamente todos os arquivos rastreados e faz commit com mensagem inline
  • git aa adiciona todos os arquivos (novos, modificados e deletados) ao staging
  • git amend corrige o último commit sem abrir editor (ideal para esquecer um arquivo)

4. Aliases para Desfazer e Corrigir Erros

Erros acontecem. Ter aliases para desfazer rapidamente evita pânico e buscas no Google:

git config --global alias.unstage "reset HEAD --"
git config --global alias.undo "reset --soft HEAD~1"
git config --global alias.discard "checkout --"

Exemplos de uso:

git unstage arquivo.txt        # remove arquivo da staging area
git undo                       # desfaz último commit, mantém alterações em working directory
git discard arquivo.txt        # descarta alterações não commitadas no arquivo
  • git unstage é equivalente a git reset HEAD -- arquivo
  • git undo reverte o commit mas preserva as modificações para novo commit
  • git discard substitui o arquivo pela última versão commitada (cuidado: alterações são perdidas)

5. Aliases para Sincronização e Pull Avançado

Manter o repositório sincronizado com o remoto é crucial em trabalho colaborativo:

git config --global alias.up "pull --rebase --autostash"
git config --global alias.pushf "push --force-with-lease"
git config --global alias.sync "!git fetch --prune && git rebase"
  • git up faz pull com rebase em vez de merge, mantendo histórico linear. --autostash guarda alterações locais temporariamente
  • git pushf força o push com segurança (rejeita se houver commits remotos que você não viu)
  • git sync sincroniza a branch local com o remoto: busca atualizações e aplica rebase

6. Aliases para Gerenciamento de Branches

Trabalhar com branches é mais eficiente com atalhos inteligentes:

git config --global alias.co "checkout"
git config --global alias.cob "checkout -b"
git config --global alias.bd "branch -d"
git config --global alias.prune "remote prune origin"

Fluxo típico:

git cob feature/nova-funcionalidade  # cria e muda para nova branch
git bd feature-antiga                 # deleta branch já mesclada
git prune                             # limpa referências a branches remotas deletadas
  • git co checkout rápido (ex: git co main)
  • git cob cria branch e já faz checkout (ex: git cob hotfix/login)
  • git bd deleta branch local (seguro: só deleta se já mesclada)
  • git prune remove referências órfãs de branches remotas deletadas

7. Aliases para Log e Inspeção Detalhada

Para análises mais profundas do histórico, estes aliases são indispensáveis:

git config --global alias.logg "log --oneline --graph --decorate --all --author-date-order"
git config --global alias.find "log --oneline --grep"
git config --global alias.blam "blame -w -C -C -C"
  • git logg log visual com autor e data em ordem cronológica
  • git find "palavra" busca commits cuja mensagem contém "palavra"
  • git blam arquivo.txt mostra quem modificou cada linha, ignorando espaços em branco e detectando movimentações de código

8. Boas Práticas e Personalização Avançada

Para manter os aliases organizados, edite o .gitconfig diretamente com seções comentadas:

[alias]
  # Navegação
  st = status -sb
  br = branch -a
  lg = log --oneline --graph --decorate --all

  # Commits
  ci = commit
  ca = commit -a -m
  aa = add -A

  # Correção
  unstage = reset HEAD --
  undo = reset --soft HEAD~1
  discard = checkout --

Para aliases complexos que executam múltiplos comandos, use scripts externos. Crie um arquivo ~/bin/git-cleanup:

#!/bin/bash
git branch --merged | grep -v "\*\|main\|master" | xargs -n 1 git branch -d
git remote prune origin

Torne executável (chmod +x ~/bin/git-cleanup) e adicione ao PATH. Depois configure o alias:

git config --global alias.cleanup "!git-cleanup"

Compartilhe aliases com a equipe mantendo um arquivo git-alias.sh no repositório de dotfiles. Cada desenvolvedor pode executar source git-alias.sh para importar todos os atalhos.

Referências