De Bagunça a Clareza: Como Deixar seu Histórico Git Profissional de Verdade
- #Git
Se tem uma coisa que a gente aprende na marra no mundo do desenvolvimento, é que um histórico de commits bagunçado dá dor de cabeça — cedo ou tarde.
No começo, tudo parece ok: você vai fazendo suas alterações, comitando aqui e ali, e quando vê… tá tudo funcionando. Mas aí chega o momento de revisar, ou pior: corrigir um bug urgente. E é nessa hora que você percebe que os commits viraram uma colcha de retalhos — “ajuste”, “teste final”, “agora vai”, “última tentativa mesmo”.
Mas calma, tem solução.
O Git tem várias ferramentas maneiras que podem transformar esse caos em um histórico limpinho, fácil de entender e o melhor profissional. Vou compartilhar aqui algumas práticas que venho usando no meu dia a dia (e que já me salvaram várias vezes), como o git rebase -i
, o git merge --squash
e outras ideias que ajudam a manter o repositório saudável.
Por que se preocupar com isso?
O histórico de commits não é só um log técnico. Ele é tipo o diário do projeto, contando passo a passo o que aconteceu ali.
Um bom histórico ajuda qualquer pessoa a entender:
- O que foi feito
- Por que foi feito
- Quando foi feito
- E por quem
Isso agiliza revisão, facilita onboarding, e evita aquele clássico: “Alguém sabe o que aconteceu aqui?”
Benefícios de manter tudo em ordem
- Revisão de código mais rápida: Commits bem escritos mostram o que mudou, sem surpresas escondidas.
- Debug sem drama: Com um histórico limpo, usar
git bisect
pra achar bugs vira um superpoder. - Menos problemas no CI/CD: Históricos mais organizados ajudam na estabilidade do pipeline.
- Evita retrabalho: Com boas práticas, os times se atropelam menos, os merges fluem melhor.
E quando o histórico é um caos?
Se você já pegou um projeto com commits tipo “ajuste”, “testando”, “deu certo!” — sabe bem como isso atrasa a vida.
Além de ser difícil rastrear o que foi feito, um histórico bagunçado pode prejudicar entregas, testes e até passar uma imagem de desorganização pro time. Mostrar que você sabe usar o Git direito é um baita sinal de maturidade.
Recrutadores, tech leads, galera do open source, todo mundo percebe quando o repositório tá bem cuidado.
Como fazer bons commits no Git
Um bom commit é direto, claro e fácil de entender. Ele representa uma mudança específica que contribui para a evolução do projeto — sem ruído.
1. Uma mudança por vez
Evita misturar tudo no mesmo commit. Nada de colocar ajuste visual, lógica nova e refatoração juntos. Se der ruim, como você vai reverter só uma parte?
Bom exemplo:
Ruim:
2. Mensagem clara e objetiva
Títulos curtos (até 50 caracteres), prefixos padrão (feat:
, fix:
, etc) e, se for o caso, um corpo com mais contexto.
3. Código testado e funcionando
Não comite nada quebrado. Testes passando, nada pela metade, e de preferência com revisão antes.
4. Só arquivos relevantes
Evite colocar .log
, .DS_Store
, arquivos de config locais ou coisas fora do escopo. Use .gitignore
direito.
5. Histórico limpo
Use rebase
no lugar de merge bagunçado. Faça squash dos commits menores, evite “último ajuste”, “final de verdade”, “corrigido bug”.
6. Explique o porquê
Não diga só o que fez, diga o motivo.
Ruim:
Melhor:
Como limpar o histórico com git rebase -i
Esse comando é um salva-vidas quando você fez vários commits pequenos e quer deixar tudo mais apresentável antes de mandar pra main.
Como usar:
Isso vai abrir os últimos 5 commits num editor. Aí você pode escolher o que fazer com cada um:
pick
: mantém o commit como estáreword
: edita a mensagemedit
: altera o conteúdosquash
: junta com o anteriordrop
: deleta o commit
Resolva conflitos (se aparecerem), finalize o rebase e pronto: histórico limpo e profissional.
Checklist do bom commit
Uma mudança por commit✅
Mensagem clara, objetiva e padronizada✅
Código funcionando e testado✅
Só arquivos relevantes✅
Histórico limpo e sem ruído✅
Explicação do porquê da mudança✅
Sobre granularidade: quanto é demais?
Um commit pode ser muito pequeno (tipo, “mudei uma margem de 10px pra 15px”) ou grande demais (50 arquivos com alteração de lógica, layout e configuração juntos).
O ideal é pensar em unidades lógicas de trabalho.
Pergunte-se:
"Se eu precisasse desfazer isso depois, faria sentido reverter tudo junto?"
Bons exemplos:
- “Corrige layout do botão na home”
- “Refatora função de cálculo de frete”
Ruim:
- “Alterações diversas no front e back”
Evite “commits-bala de canhão”
Aquele commit com 20 arquivos mexidos, 5 features novas e refatoração junto. Dá trabalho de revisar, entender e reverter.
Mas também evite commitzinho demais
Se você muda a margin três vezes em três commits, tá na hora de fazer um squash.
Dica: siga suas tasks
Se você usa Jira, Trello ou Notion:
1 tarefa = 1 commit (ou alguns, no máximo)
Exemplo:
Escrevendo boas mensagens de commit
Estrutura recomendada:
Use o imperativo:
Evite “adicionando”, “corrigindo”. Prefira:
- “Adiciona validação de e-mail”
- “Corrige bug na listagem de produtos”
Prefixos úteis:
feat:
nova funcionalidadefix:
correção de bugdocs:
mudança na documentaçãorefactor:
refatoração de códigotest:
testesstyle:
ajustes visuaischore:
tarefas internas
Dica extra: git merge --squash
Quer juntar tudo o que fez numa branch de feature num único commit bonito? Usa isso:
Ele vai pegar tudo daquela branch, combinar num commit só, e te deixar editar a mensagem antes de salvar. Perfeito pra manter o histórico da main
limpo.
Resumo final
Git bem usado = profissionalismo.
Um bom histórico fala muito sobre você , mesmo antes de alguém ver seu código.
Se quiser padronizar ainda mais, ferramentas como Commitizen ajudam a manter tudo no formato certo.
E aí, bora dar aquele tapa no seu Git?