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.

  1. Iniciar: git bisect start
  2. Marcar como quebrado: git bisect bad
  3. Marcar versão antiga que funcionava: git bisect good <hash-antigo>
  4. Teste o commit intermediário proposto pelo Git e marque good ou bad.
  5. Repita até identificar o culpado.
  6. 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.

Artículos Relacionados