Sobes.tech
Junior — Middle

Explique o princípio de funcionamento do comando rebase no sistema de controlo de versões Git e em que difere do merge.

sobes.tech IA

Resposta da IA

O comando git rebase é usado para mover ou 'reescrever' uma série de commits para uma nova base, ou seja, para outro commit. Ele permite pegar alterações de um ramo e 'reproduzi-las' sobre outro ramo, criando uma história linear sem commits de mesclagem adicionais.

Diferenças de git merge:

  • git merge combina dois ramos, criando um novo commit de mesclagem que mantém a história de ambos os ramos com ramificações.
  • git rebase move os commits de um ramo para o topo de outro, reescrevendo a história e tornando-a linear.

Exemplo:

Se você tem um ramo feature, derivado de master, e o master foi atualizado, então:

  • git merge master em feature criará um commit de mesclagem que une as mudanças.
  • git rebase master em feature moverá seus commits sobre o estado atual do master, como se você tivesse começado a trabalhar a partir da última versão do master.

Rebase é útil para manter uma história limpa, mas requer cautela ao trabalhar com ramos públicos para não reescrever a história compartilhada.