git merge
دمج فرع في فرع آخر git merge
git merge يدمج تاريخ فرع في فرعك الحالي، ويحافظ على التاريخ الحقيقي كاملًا كما حدث فعليًا.
بعد إنهاء العمل على فرع ميزة، git merge يجمع تغييراته مع فرع آخر (غالبًا main). إن كان main لم يتغيّر منذ إنشاء الفرع، يحدث 'fast-forward' — يتقدّم المؤشّر فقط بلا commit إضافي. أمّا إن تغيّر main بالتوازي، ينشئ Git 'merge commit' يربط الفرعين معًا ويحفظ التاريخ الحقيقي كما وقع.
على عكس rebase، merge لا يغيّر أي commit موجود مسبقًا، لذا آمن دائمًا على الفروع المشتركة والمدفوعة بالفعل.
الصياغة
git merge <اسم-الفرع>
📄 مثال
git switch main git merge feature-login # Fast-forward أو Merge made by the 'ort' strategy git merge --no-ff feature-login # يُجبر إنشاء merge commit حتى لو fast-forward ممكن
أهم الخيارات
| الخيار | الوظيفة |
|---|---|
| --no-ff | يُنشئ دائمًا merge commit، حتى لو كان fast-forward ممكنًا — يحافظ على وضوح أن الفرع كان ميزة منفصلة |
| --abort | يُلغي عملية الدمج الحالية عند تعارض ويعيدك للحالة قبل البدء |
💡 نصائح عملية
- استخدم دائمًا merge بدل rebase على أي فرع رفعته ويعمل عليه أشخاص آخرون
- راجع git status أثناء تعارض دمج — يسرد بدقة أي الملفّات فيها تعارض يحتاج حلًّا يدويًا
⚠️ أخطاء شائعة
- نسيان الانتقال للفرع الهدف قبل الدمج (git switch main أولًا) فيحدث الدمج بالاتجاه المعاكس
- تجاهل رسائل التعارض والمتابعة كأن شيئًا لم يحدث — يترك علامات <<<<<<< في الكود
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار GIT الكامل بالعربي.