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.
git bisect startgit bisect good e git bisect badgit bisect reset para
restaurar o estado atualAtençã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.
git log -p NOME_DO_ARQUIVO ou git blameBranching 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
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.
Continue lendo
Guia Completo de Git: Comandos Avançados, Fluxos e Recuperação de Histórico
O que realmente pode transformar sua rotina de versionamento. Conheça comandos que vão além do básico e...
Nunca mais erre ao fazer Git Push: o segredo está no Git Pull
Entenda por que o erro clássico do Git Push acontece, e saiba como resolvê-lo de vez usando o comando certo no...
Que sorte o Deploy: Devs que se conectam no código
Como mensagens no Git, funis de marketing e conflitos em pull requests podem ocultar sentimentos verdadeiros num...
Como identificar e corrigir erros no Dev
Entenda como lidar com erros na programação e destrave sua capacidade de criar produtos digitais sem travar com bugs...