يُعد دمج الفروع جانبًا بالغ الأهمية في سير العمل التعاوني باستخدام جيت. فهو يسمح للمطورين بدمج التغييرات من فروع مختلفة، مما يُوحّد الميزات والتحسينات في قاعدة بيانات رمز موحدة. يغطي هذا البرنامج التعليمي أنواع الدمج الأساسية وحل النزاعات.
محتويات الجدول
دمج التوجيه السريع
يُعد دمج التوجيه السريع أبسط أنواع الدمج. يحدث عندما يكون الفرع الذي تقوم بدمجه فيه (الفرع الهدف) سليلًا مباشرًا للفرع الذي تقوم بدمجه منه (الفرع المصدر). هذا يعني أنه لا توجد التزامات متباينة؛ التاريخ خطي. ينقل جيت مؤشر الفرع الهدف بكفاءة إلى أحدث التزام في الفرع المصدر دون إنشاء التزام دمج جديد.
مثال:
لنفترض أن لديك فرعًا رئيسيًا main
وفرعًا للميزة feature
. قمت بإنشاء فرع feature
من main
، وقمت بإجراء التزامات على feature
، والآن تريد دمج feature
مرة أخرى في main
. إذا لم تحدث أي التزامات على main
منذ إنشاء feature
، فسيتم إجراء دمج توجيه سريع.
# التحقق من الفرع الرئيسي
git checkout main
# دمج feature في main
git merge feature
ستؤكد المخرجات دمج التوجيه السريع، مما يشير إلى تكامل نظيف وفعال.
دمج متكرر
يتعامل الدمج المتكرر مع الحالات التي تباعدت فيها الفروع. يحدث هذا عندما يتم إجراء التزامات على كل من الفرع المصدر والفرع الهدف منذ انشطارهما من سلف مشترك. يستخدم جيت خوارزمية متكررة لدمج هذه التغييرات بذكاء، مما ينتج عادةً التزام دمج جديد على الفرع الهدف.
مثال:
إذا تلقى كل من main
و feature
التزامات منذ التباعد، فإن دمج feature
في main
يُنشط دمجًا متكررًا.
# التحقق من الفرع الرئيسي
git checkout main
# دمج feature في main
git merge feature
سيقوم جيت بإنشاء التزام دمج يمثل التغييرات المُدمجة. ستشير المخرجات إلى استخدام استراتيجية دمج متكررة.
حل تعارضات الدمج
تنشأ التعارضات عندما يتم تعديل نفس الأسطر في نفس الملفات في كلا الفرعين. لا يمكن لجيت أن يقرر تلقائيًا التغييرات التي يجب الاحتفاظ بها، لذلك فهو يوقف الدمج، مع وضع علامات على الأقسام المتعارضة في الملفات المتأثرة.
التعرف على التعارضات:
يضيف جيت علامات خاصة (<<<<<<<
، =======
، >>>>>>>
) إلى الملفات المتعارضة ويقوم بإدراجها في مخرجات الحالة.
حل التعارضات:
- فتح الملفات المتعارضة: راجع الأقسام المميزة لفهم التغييرات من كل فرع.
- تعديل الملفات: حل التعارضات يدويًا، وإزالة علامات التعارض.
- مرحلة التغييرات: استخدم
git add <file>
لوضع الملفات المُحَلّة في المرحلة. - الالتزام بالدمج: استخدم
git commit
لإكمال الدمج. ينشئ جيت التزام دمج مع التغييرات المُحَلّة.
مثال على ملف متعارض:
<<<<<<>>>>>> feature
ستقوم بتعديل هذا لاختيار أحد السطور، أو مزيج منهما.
من خلال إتقان دمج التوجيه السريع والدمج المتكرر، والتعامل مع التعارضات بكفاءة، ستُحسّن سير عمل جيت الخاص بك، مما يُمكّن التعاون الفعال.