https://medium.com/mindorks/understanding-git-merge-git-rebase-88e2afd42671
No Git, os históricos de commits são geridos de forma diferente pelos comandos git rebase e git merge, o que afeta a forma como os commits aparecem no histórico.
git merge:
git merge, o Git combina as duas branches conservando o histórico das duas, criando um commit de merge específico. Isto significa que todos os commits das duas branches são visíveis no histórico.git rebase:
git rebase, os commits da branch atual são « reaplicados » na branch alvo, o que cria novos commits correspondentes aos antigos, mas com novos hashes (identificadores de commit). Isto reescreve o histórico para dar a impressão de que os commits foram feitos diretamente na branch alvo.git merge: conserva o histórico completo dos commits das duas branches, incluindo os pontos de divergência e de fusão.git rebase: reescreve o histórico ao eliminar os commits de divergência, criando um histórico linear sem rasto explícito do momento em que as branches divergiram.É realmente importante compreender as diferenças-chave entre Git Merge e Git Rebase se quiser ser um excelente gestor de controlo de versão! O Git Merge é ideal para conservar o histórico das duas branches e assegurar que tudo está bem em segurança. O Git Rebase, por seu lado, é perfeito para obter um histórico de commits limpo e linear. No entanto, como em tudo, há alguns pontos a vigiar, sobretudo quando trabalha em branches públicas. Seguir a regra de ouro do rebase pode ajudá-lo a evitar conflitos delicados mais tarde. Quando decidir qual usar, pense simplesmente na forma como a sua equipa trabalha e na visibilidade que quer dar às suas branches!