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 --graphMesclagem: 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 --graphRebase: 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
- Fluxo de trabalho com ramificações de funcionalidades
- Introdução ao fluxo de trabalho Gitflow
- Rebase versus mesclagem
- Desenvolvimento Baseado no Tronco