كل من merge و rebase يدمجان التغييرات من فرع إلى آخر، لكنهما يفعلان ذلك بطرق مختلفة: merge يحافظ على السجل التاريخي مع commit للدمج، بينما 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)
