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/maine 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.
Sou Apaixonado pela programação e estou trilhando o caminho de ter cada diz mais conhecimento e trazer toda minha experiência vinda do Design para a programação resultando em layouts incríveis e idéias inovadoras! Conecte-se Comigo!