TL;DR — Resumo Rápido
Domine técnicas avançadas de Git para manter um histórico limpo, automatizar tarefas e depurar regressões usando rebase, bisect e hooks.
Indo Além do Básico no Git
Dominar ferramentas corporativas do Git reduz conflitos de mesclagem (merge), automatiza a qualidade do código e corta o tempo de depuração pela metade em projetos grandes.
1. Git Rebase: Mantendo um Histórico Linear
O Rebase move uma sequência de commits para uma nova base.
Como Fazer Rebase
git checkout feature
git rebase main
Regra de Ouro: Nunca faça rebase de uma branch compartilhada ou pública.
Rebase Interativo (Squash)
Juntando vários commits num só:
git rebase -i HEAD~5
Altere pick para squash no editor embutido para mesclá-los.
2. Git Bisect: O Superpoder da Depuração
Git Bisect realiza uma busca binária pelo histórico para encontrar o commit exato que introduziu o bug.
- Iniciar:
git bisect start - Marcar como quebrado:
git bisect bad - Marcar versão antiga que funcionava:
git bisect good <hash-antigo> - Teste o commit intermediário proposto pelo Git e marque
goodoubad. - Repita até identificar o culpado.
- Limpar:
git bisect reset
3. Git Hooks: Automatizando a Qualidade
Hooks são scripts que o Git executa localmente. Por exemplo, antes de um commit (pre-commit), para executar testes e linters automaticamente.
Exemplo: .git/hooks/pre-commit
#!/bin/sh
# Lembre de: chmod +x .git/hooks/pre-commit
echo "Executando testes..."
npm test
if [ $? -ne 0 ]; then
echo "Testes devem passar antes de fazer commit!"
exit 1
fi
Resumo
- Use Rebase (
git rebase -i) para histórico linear. - Use Bisect (
git bisect) para caçar regressões rapidamente. - Use Hooks (
.git/hooks/pre-commit) para reforçar regras localmente.