merge et rebase intègrent tous deux les modifications d'une branche dans une autre, mais ils le font différemment : merge préserve l'historique avec un commit de fusion, tandis que rebase réécrit l'historique pour créer une séquence linéaire. Comprendre la différence et quand utiliser chacun est important.
Merge — préserve l'historique (combine)
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)
