И merge, и rebase объединяют изменения из одной ветки в другую, но работают по-разному: merge сохраняет историю с помощью коммита слияния, а rebase переписывает историю, создавая линейную последовательность. Понимание различий и того, когда использовать каждый подход, важно.
Merge — сохраняет историю (объединяет)
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)
