git merge: يدمج فرعين ويحافظ على التاريخ كما حدث، وغالبًا يضيف commit دمج.git rebase: يعيد تطبيق commits فرعك فوق فرع آخر، فيصبح التاريخ خطًا مستقيمًا.
# merge main into your branch
git switch feature
git merge main
# or replay your work on top of main
git switch feature
git rebase main
متى أستخدم كلًّا منهما؟
- merge: آمن دائمًا، ويحفظ ما حدث فعلًا.
- rebase: لتنظيف فرعك المحلي قبل مشاركته، فيكون التاريخ أوضح.
قاعدة مهمة: لا تعمل rebase على commits شاركتها مع الآخرين، لأنه يعيد كتابة التاريخ ويربك من سحبها.