Sobes.tech
Middle

Qual é a diferença entre rebase e merge no Git?

sobes.tech IA

Resposta da IA

Merge combina ramos criando um novo commit de fusão. Rebase move os commits de um ramo para outro, reescrevendo a história.

Merge:

  • Mantém a história de alterações na sua forma original.
  • Cria um novo commit.
  • É mais fácil rastrear a origem das alterações.

Rebase:

  • Cria uma história linear.
  • Não cria um novo commit de fusão.
  • Reescreve a história dos commits.
  • Pode causar problemas em trabalho colaborativo se a história já foi publicada.

Comparação:

Propriedade Merge Rebase
História Linear com ramificações (commit de fusão) Linear (reescreve a história)
Commits Adiciona um novo commit de fusão Move os commits existentes para um novo local
Acompanhamento Mais fácil entender de onde vêm as mudanças Pode dificultar o acompanhamento
Trabalho colaborativo Recomendado para ramos publicados Não recomendado para ramos publicados

Exemplo de Merge:

// Alternar para o ramo de destino
git checkout main

// Mesclar o ramo feature
git merge feature

Exemplo de Rebase:

// Alternar para o ramo a ser rebaseado
git checkout feature

// Rebase do ramo feature sobre main
git rebase main