Dominando o Git no Dia a Dia
Se você já escreveu um commit com a mensagem "Ajustes finais" ou "Agora vai", sabe que a histórico do projeto vira uma bagunça rapidamente. No dia a dia de desenvolvimento, escrever commits claros e saber resolver problemas com Git não é capricho, é profissionalismo. Neste post, separei os comandos e padrões essenciais para manter um histórico limpo e profissional no seu repositório.
1. Padronização de Commits (Conventional Commits)
Commits padronizados ajudam qualquer dev do time (e seu "eu" do futuro) a entender o que mudou no código sem precisar abrir a PR inteira.
A estrutura básica segue o padrão:
<tipo>(escopo opcional): <descrição curta no presente/imperativo>
Os tipos mais comuns:
feat: Nova funcionalidade no sistema.fix: Correção de bug.docs: Alterações na documentação (README.md, etc.).refactor: Refatoração de código que não altera comportamento nem corrige bug.test: Adição ou ajuste de testes unitários/integração.chore: Atualização de dependências, builds ou scripts de CI/CD.
Exemplo prático:
git commit -m "arrumei o login"
git commit -m "fix(auth): resolve NullPointerException ao validar JWT expirado"
2. Os Comandos "Salva-Vidas" no Terminal
Esqueceu algo ou errou a mensagem do último commit?
Se ainda não deu push na branch remota, você pode ajustar o último commit diretamente:
# Adiciona o arquivo esquecido
git add .
# Inclui no último commit sem alterar a mensagem
git commit --amend --no-edit
# Ou altera a mensagem do último commit
git commit --amend -m "fix(api): corrige endpoint de busca de usuários"
Precisa guardar alterações temporariamente? (git stash)
Está no meio de uma task e precisa trocar de branch urgente para corrigir um bug em produção?
# Salva suas alterações temporárias com uma descrição
git stash save "WIP: implementação da tela de cadastro"
# Lista seus stashes salvos
git stash list
# Recupera o último stash e limpa a lista
git stash pop
Desfazendo alterações sem perder o rumo
Desfazer alterações em arquivo local (que ainda não deu
add):git checkout -- arquivo.javaRemover arquivo da staging area (após o
git add):git restore --staged arquivo.java
3. Rebase vs. Merge: Mantenha o Histórico Limpo
Enquanto o git merge cria um "commit de mesclagem" a cada integração com a branch principal, o git rebase aplica seus novos commits no topo da branch de destino, criando um histórico linear.
# Atualizando sua feature branch com a main via rebase
git checkout feature/sua-task
git fetch origin
git rebase origin/main
A Regra de Ouro: Nunca faça
rebaseem branches públicas/compartilhadas (comomainoudevelop). Use apenas em branches locais/pessoais antes de abrir a Pull Request.
Conclusão
Manter um fluxo de Git organizado com mensagens claras e commits atômicos (pequenos e com responsabilidade única) facilita auditorias, gera logs automáticos de release e demonstra maturidade arquitetural no projeto.
Recommended book
Want to dive deeper into this topic? Check out the book that inspired this post.
View book →