Git Merge vs Git Rebase com GitLens: entenda
Debug, merge, bisect e produtividade no Git usados direto no VSCode com GitLens
Por que isso é importante
Git Merge vs Git Rebase com GitLens: entenda. Debug, merge, bisect e produtividade no Git usados direto no VSCode com GitLens
Entendendo a diferença entre Git Merge e Git Rebase
Merge junta duas branches e cria um commit de união. Rebase pega seus commits e reaplica eles em cima da outra branch. Resultado final parecido, histórico completamente diferente.
Git Merge
Integra uma branch mantendo o histórico paralelo de commits.
+ Prós
- • Preserva histórico original
- • Evita reescrita de commit
− Contras
- • Histórico com múltiplos ramos
- • Dificulta leitura linear
Git Rebase
Reposiciona os commits da branch como se tivessem sido feitos após a branch base
+ Prós
- • Histórico linear e limpo
- • Facilita revisão de código
− Contras
- • Reescreve histórico
- • Pode causar conflitos complexos
Debug do histórico com Git Log e Blame
Achar o bug é fácil. Difícil é descobrir quem colocou aquilo ali e por quê. Git log mostra commits, git blame aponta o autor de cada linha, e git log -p exibe as mudanças exatas. Essas três ferramentas resolvem 90% das investigações.
Atenção
Git log sem filtros em projetos grandes é como ler um livro de 2000 páginas procurando uma frase. Use --follow para rastrear um arquivo específico ou -L para focar numa função.
Encontrou a função bugada? Rode git log -L :nomeDaFuncao:arquivo.js e veja só os commits que mexeram nela. Economiza tempo e vai direto ao ponto.
Automatizando a detecção com Git Bisect
Identifique o primeiro commit com bug de forma programática
Bisect é busca binária no histórico do Git. Você marca um commit bom e um ruim, ele divide o histórico ao meio e pede para você testar. Repete até encontrar exatamente onde o bug apareceu.
- Passo 1: Inicie a sessão com
git bisect start - Passo 2: Defina o commit bom e o ruim com
git bisect goodegit bisect bad - Passo 3: Teste a versão atual e marque como good ou bad até
encontrar o causador - Passo 4: Finalize com
git bisect resetpara
restaurar o estado atual
Atenção
Bisect manual é chato. Com testes automatizados, você roda git bisect run npm test e ele acha o commit culpado sozinho enquanto você toma café.
Resolvendo Conflitos de Merge com Visual Studio Code
Conflito de merge no terminal é confuso. No VSCode, você vê as duas versões lado a lado com botões de "aceitar atual", "aceitar incoming" ou "mesclar ambas". Resolução visual salva sua sanidade.
Importante
Não aceite uma versão só porque foi você quem escreveu. Leia as duas, entenda a lógica e escolha a que faz sentido para o app.
Usando GitLens para inspecionar e resolver bugs sem terminal
GitLens coloca todo o poder do Git na interface do VSCode. Blame inline mostrando quem mexeu em cada linha, histórico clicável, diff visual. Tudo sem sair do editor.
Corrigindo um bug real: cálculo quebrado
Bug clássico: função de soma retornando subtração. Como rastrear? Rode o teste, confirme o erro, use git blame na linha bugada, veja quem mudou e quando.
- Passo 1: Reproduza o bug executando a função manualmente
- Passo 2: Localize a função e encontre onde está sendo chamada
- Passo 3: Use
git log -p NOME_DO_ARQUIVOougit blame - Passo 4: Detecte o commit e autor exatos do bug. Corrija e
submeta em branch separada
Branching estratégico: criando e integrando correções
Branch com nome tipo "fix/calculo-soma-errado" deixa claro o que você está fazendo. Depois de corrigir, merge ou rebase depende do padrão do time. Não invente moda.
Dica
fix/ para bugs, feature/ para funcionalidades, refactor/ para melhorias. Padrão simples que organiza o histórico e facilita code review.
Abordagem moderna: abandonando o terminal com GitLens
GitLens é produtividade visual pura. Clica numa linha e vê o commit que criou ela. Navega no histórico sem terminal. Diff lado a lado. Perfeito para quem prefere interface gráfica.
Atenção
GitLens facilita, mas não substitui conhecer os comandos. Quando a interface travar ou você precisar de algo específico, o terminal continua sendo seu amigo.
Integração com outras ferramentas do fluxo
GitLens conecta com GitHub e mostra PRs, issues e CI status direto no VSCode. Commit e já vê se passou no build. Fluxo completo sem trocar de tela.
Conclusão: produtividade 10x com Git bem dominado
Git bem dominado separa júnior de sênior. Rastrear bugs em minutos, resolver conflitos sem pânico, manter histórico limpo — tudo isso vale mais que mil linhas de código.
Checklist de Implementação
- Entendeu a diferença entre merge e rebase
- Aprendeu a usar git blame e log -p para rastrear bugs
- Usou git bisect para encontrar o commit quebrado
- Resolveu conflitos de merge manualmente via VSCode
- Configurou e usou GitLens integrado no Visual Studio Code
- Criou prática com branches fix/ e feature/ separadamente
- Fez merge ou rebase correto de acordo com o fluxo do time
Transforme sua carreira
E foi EXATAMENTE por isso que eu criei um curso de Node.js e React chamado CrazyStack.
A minha maior necessidade no início da carreira era alguém que me ensinasse um projeto
prático onde eu pudesse não só desenvolver minhas habilidades de dev como também
lançar algo pronto para entrar no ar no dia seguinte.
Sabe qual era minha maior frustração? Aplicar conhecimentos teóricos em projetos
práticos e reais, mas não encontrar ninguém que me ensinasse COMO fazer isso na
prática! Era exatamente a mesma frustração que você deve sentir: acumular informação
sem saber como implementar na prática.
Assim como você precisa de estratégias claras e implementação prática para ter
sucesso, todo desenvolvedor precisa de um projeto estruturado para sair do teórico e
partir para a execução. É como ter todas as peças do quebra-cabeça mas não saber como
montá-las - você pode ter conhecimento técnico, mas sem um projeto completo, fica
difícil transformar esse conhecimento em resultados concretos.
No CrazyStack, você constrói um SaaS completo do zero - backend robusto em Node.js,
frontend moderno em React, autenticação, pagamentos, deploy, tudo funcionando. É o
projeto que eu queria ter quando comecei: algo que você termina e pode colocar no ar
no mesmo dia, começar a validar com usuários reais e até monetizar.