0Pricing
DevOps Bootcamp · Aula

Rebase versus mesclagem

Compare o rebase e a mesclagem e aprenda quando usar cada um para manter um histórico limpo e linear.

Rebase versus mesclagem é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Mesclar ou fazer rebase? A escolha

Ao trabalhar com Git, é comum encontrar sua ramificação divergindo de outra, como sua ramificação feature em relação a main.

Como reunir essas alterações? O Git oferece duas estratégias principais: mesclagem e rebase. Ambas realizam a integração, mas de maneiras fundamentalmente diferentes, resultando em históricos de projeto distintos.

Mesclagem: combinando históricos

Mesclar é a maneira padrão do Git de integrar alterações. Quando você mescla uma ramificação em outra, o Git pega o conteúdo da ramificação de origem e o combina com a ramificação de destino.

A principal característica de uma mesclagem é que ela cria uma nova confirmação de mesclagem. Essa confirmação tem duas confirmações pai, mostrando explicitamente que dois históricos divergentes foram reunidos. Ela preserva o histórico exato de ambas as ramificações.

Realizando uma mesclagem no Git

Vamos ver uma mesclagem simples. Criaremos uma ramificação feature, adicionaremos uma confirmação e depois a mesclaremos novamente em main.

git init my_merge_project
cd my_merge_project
echo "Initial content" > file.txt
git add .
git commit -m "Initial commit"

git branch feature
git checkout feature
echo "Feature A" >> feature.txt
git add .
git commit -m "Add feature A"

git checkout main
echo "Main update" >> main.txt
git add .
git commit -m "Update main"

git merge feature

git log --oneline --graph

Mesclagem: vantagens e desvantagens

A mesclagem é direta e segura para ramificações compartilhadas, mas pode resultar em um histórico 'confuso'.

  • Vantagens:
  • Preserva o histórico exato das confirmações.
  • Não é destrutiva; não reescreve confirmações existentes.
  • É simples de usar e entender.
  • Desvantagens:
  • Pode criar um histórico 'ruidoso', com muitas confirmações de mesclagem.
  • O gráfico pode parecer complexo, com muitas ramificações sendo mescladas.

Rebase: reescrevendo o histórico

Rebase é uma alternativa à mesclagem que integra alterações movendo ou combinando uma sequência de confirmações para uma nova confirmação base. Em vez de criar uma confirmação de mesclagem, ele reescreve o histórico do projeto.

Essencialmente, as confirmações da sua ramificação de funcionalidades são 'reproduzidas' sobre a confirmação mais recente da ramificação de destino, fazendo parecer que você começou seu trabalho a partir dela. Isso cria um histórico linear, sem confirmações de mesclagem extras.

Realizando um rebase no Git

Agora, vamos experimentar o mesmo cenário com rebase. Faremos o rebase da nossa ramificação feature sobre main.

Observe como a confirmação da ramificação feature é reaplicada sobre a confirmação mais recente de main; em seguida, uma mesclagem de avanço rápido faz main apontar para ela.

git init my_rebase_project
cd my_rebase_project
echo "Initial content" > file.txt
git add .
git commit -m "Initial commit"

git branch feature
git checkout feature
echo "Feature B" >> feature.txt
git add .
git commit -m "Add feature B"

git checkout main
echo "Main update 2" >> main.txt
git add .
git commit -m "Update main 2"

git checkout feature
git rebase main

git checkout main
git merge feature

git log --oneline --graph

Rebase: vantagens e desvantagens

O rebase cria um histórico limpo, mas traz um alerta importante sobre ramificações compartilhadas.

  • Vantagens:
  • Cria um histórico de projeto limpo e linear.
  • Facilita a navegação e a compreensão do histórico de confirmações.
  • Pode limpar (agrupar, reordenar) confirmações antes da integração.
  • Desvantagens:
  • Reescreve o histórico de confirmações.
  • Pode ser perigoso quando usado em confirmações que já foram enviadas para um repositório remoto compartilhado (público).

Mesclagem versus rebase: a comparação

Veja um resumo rápido das principais diferenças:

  • Mesclagem:
  • Cria uma nova confirmação de mesclagem.
  • Preserva o histórico completo e exato.
  • Não é destrutiva.
  • O gráfico pode ser complexo.
  • Rebase:
  • Reescreve o histórico, sem confirmação de mesclagem.
  • Resulta em um histórico linear.
  • É destrutivo (altera os identificadores das confirmações).
  • O gráfico fica muito limpo.

Escolhendo sua estratégia

Então, quando você deve usar cada uma?

  • Use a mesclagem quando:
  • Estiver trabalhando em ramificações públicas/compartilhadas (por exemplo, main, develop).
  • Precisar preservar o histórico exato do seu projeto.
  • Quiser mostrar explicitamente quando históricos divergentes foram combinados.
  • Use o rebase quando:
  • Estiver trabalhando em sua ramificação privada de funcionalidade antes de enviá-la.
  • Quiser um histórico limpo e linear.
  • Quiser organizar as confirmações da sua ramificação de funcionalidade (por exemplo, agrupar ou reordenar) antes da integração.

A regra de ouro: nunca faça rebase de confirmações que já foram enviadas para um repositório remoto compartilhado! Fazer rebase de um histórico compartilhado pode causar grandes problemas para os colaboradores.

Verificação rápida: mesclar ou fazer rebase?

Considere as propriedades das duas principais estratégias de integração do Git.

Recapitulação: mesclagem versus rebase

Nesta lição, exploramos as duas maneiras fundamentais do Git de integrar alterações: mesclagem e rebase.

  • A mesclagem combina históricos com uma nova confirmação de mesclagem, preservando todas as confirmações originais.
  • O rebase reescreve o histórico, criando um fluxo linear ao mover confirmações.

Escolha com cuidado com base no fluxo de trabalho da sua equipe e lembre-se da regra de ouro: nunca faça rebase de um histórico público! Esse conhecimento é essencial para manter um fluxo de trabalho Git limpo e colaborativo.

Perguntas Frequentes

A aula “Rebase versus mesclagem” é grátis?

Sim — o texto completo de “Rebase versus mesclagem” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Rebase versus mesclagem”?

Compare o rebase e a mesclagem e aprenda quando usar cada um para manter um histórico limpo e linear. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Rebase versus mesclagem”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fluxo de trabalho com ramificações de funcionalidades
  2. Introdução ao fluxo de trabalho Gitflow
  3. Rebase versus mesclagem
  4. Desenvolvimento Baseado no Tronco
← Voltar para DevOps Bootcamp