Git do Jeito Certo: Como Limpar Commits de Forma Segura e Eficiente – Guia Prático

Git do Jeito Certo: Como Limpar Commits de Forma Segura e Eficiente – Guia Prático





Usando Git Direito – Limpando seus Commits!.mp3


Usando Git Direito — Limpando seus Commits!.mp3

Técnicas práticas para manter o histórico do repositório limpo, legível e fácil de manter.

1. Por que commits limpos importam

  • Facilitam code reviews, pois cada mudança encontra um objetivo claro e único.
  • Facilitam a reversão de bugs sem mexer em centenas de linhas com mensagens ambíguas.
  • Permitem bisect eficaz para encontrar a raiz do problema rapidamente.
  • Contribuem para um histórico compreensível que facilita a manutenção a longo prazo.

Em projetos com várias pessoas, manter commits atomizados e autoexplicativos reduz atritos e aumenta a velocidade de integração.

2. Regras básicas de mensagens de commit

  • Use o modo imperativo no assunto: “feat: adiciona filtragem por status” ou “fix: corrige bug de paginação”.
  • Limite o assunto a ~50 caracteres; o corpo pode detalhar o motivo, impacto e como testar.
  • Separe o corpo do assunto com uma linha em branco e mantenha as linhas do corpo com até ~72 caracteres.
  • Se possível, adote um prefixo de tipo (feat, fix, refactor, chore, docs) para padronização.

Uma mensagem bem escrita reduz o tempo de compreensão para quem lê o histórico pela primeira vez.

// Exemplo de commit claro
feat: adicionar filtro de status na lista de pedidos

Este commit adiciona um filtro por status (aberto, em progresso, fechado)
na tela de pedidos. Inclui componentes novos, testes básicos e
documentação de uso no README.

3. Técnicas para limpar o histórico

  • Amend para ajustar o último commit sem criar um novo.
  • Reset suave (soft) para re-agrupamento de commits locais antes de enviar.
  • Rebase interativo para reordenar, combinar (squash) e renomear commits.
  • Regras de cautela: não reescreva histórico de branches já publicados sem aviso aos colegas.
# Corrige a mensagem do último commit
git commit --amend -m "feat: filtragem por status na lista de pedidos"

# Desfaz o último commit mantendo as alterações no index
git reset --soft HEAD~1

# Interativo: rebase para ajustar 4 commits anteriores
git rebase -i HEAD~4
# No editor:
#   pick  Primeiro commit
#   squash  Segundo commit
#   fixup   Terceiro commit
#   reword  Quarto commit

Dicas rápidas:
– use fixup para mesclar commits mantendo uma mensagem final limpa;
– use reword para ajustar apenas a mensagem de um commit específico.

Dicas de segurança: sempre faça backup de branches em progresso antes de grandes rebase/alterações de história.

4. Fluxo recomendado em equipes

  • Crie uma branch de feature pequena e bem definida: git checkout -b feat/limpeza-commits.
  • Realize commits pequenos, atômicos e com mensagens claras durante o desenvolvimento.
  • Antes de abrir o pull/merge request, actualize o histórico localmente:
    git fetch origin
    git rebase -i origin/main

    e utilize squash/fixup para consolidar commits em mudanças coerentes.

  • Ao finalizar, evite reescrever histórico já publicado no main. Se precisar ajustar antes do merge, prefira rebase local e force-with-lease apenas na sua branch remota:
    git push --force-with-lease
  • Documente a limpeza de histórico no PR para que o revisor entenda as mudanças trazidas.

Um fluxo bem definido reduz conflitos entre equipes e acelera a integração contínua.

Gostou do conteúdo? Acesse outros posts no Yurideveloper para aprofundar em Git, fluxo de trabalho com código e práticas de desenvolvimento modernas.