Sowohl merge als auch rebase integrieren Änderungen von einem Branch in einen anderen, tun dies aber auf unterschiedliche Weise: merge bewahrt die Historie mit einem Merge-Commit, während rebase die Historie umschreibt, um eine lineare Abfolge zu erstellen. Das Verständnis des Unterschieds und wann man welches Verfahren einsetzt, ist wichtig.
Merge — bewahrt die Historie (kombiniert)
main: A───B───C───────M ← M is a MERGE COMMIT (two parents)
\ /
feature: D───E
→ git merge feature: creates M combining the branches
✓ Preserves the actual history (shows the branch existed, when it merged)
✗ History has merge commits (can look cluttered with many merges)
