كيف يتم حل تعارضات الدمج في Git Result؟

نشرت: 2021-09-16

إذا سبق لك العمل على برنامج كبير الحجم بالتعاون مع مطورين آخرين ، فيجب أن تكون على دراية بالتحكم في الإصدار. Git هو أحد أكثر أنظمة التحكم في الإصدارات مفتوحة المصدر استخدامًا والتي تسمح للمطورين بالعمل بشكل متزامن والتعاون ، حتى من المواقع البعيدة والبعيدة. ومع ذلك ، نظرًا لأن العديد من المستخدمين يعملون في وقت واحد ، فهناك فرص للتعارضات التي يجب الاهتمام بها. من خلال هذه المقالة ، دعنا نشرح أساسيات تعارضات الدمج في Git وكيف يمكنك حل تعارضات الدمج في Git.

جدول المحتويات

ما هو تعارض الدمج في Git؟

تعمل جميع أدوات الإصدار الحالية على ميزة رئيسية واحدة - قدرة المبرمجين المختلفين على العمل على ملف واحد في نفس الوقت دون التسبب في أي اضطرابات لعمل بعضهم البعض. يسمح Git بهذا من خلال تنفيذ شيء يسمى "فرع". يُسمح للمطورين المتعددين أولاً بالعمل في الفروع الفردية محليًا. ثم يطلب منهم دفع الكود إلى مستودع مركزي. من هناك ، يمكن للمستخدمين الآخرين سحب الكود المحدث إلى فرعهم المحلي ومواصلة عملهم.

عند حدوث مثل هذه التغييرات المتوازية في الوقت الفعلي ، هناك دائمًا فرصة لتداخل العمل. في بعض الأحيان قد ينتهي الأمر بالعديد من المطورين إلى تغيير نفس سطر التعليمات البرمجية بطرق مختلفة. في مثل هذه السيناريوهات ، لا يمكن لـ GIt تحديد الإصدار الصحيح من الكود لأن هذا شيء لا يمكن إلا للمطور اكتشافه. في حالة حدوث مثل هذا السيناريو ، سترى خطأ git merge التالي:

الدمج التلقائي [file1]

CONFLICT (المحتوى): دمج التعارض في [file1]

فشل الدمج التلقائي ؛ إصلاح التعارضات ثم تنفيذ النتيجة.

كما ترى ، يطرح Git خطأ تعارض دمج ويحدد الملف الذي حدث فيه الخطأ. إذن ، كيف يمكننا حل تعارضات الدمج هذه؟ حسنًا ، بالنسبة للمبتدئين ، فإن أفضل وأكثر الممارسات الموصى بها هي مزامنة التعليمات البرمجية الخاصة بك عدة مرات على مدار اليوم عن طريق الالتزام والدفع والسحب والدمج في كثير من الأحيان.

بخلاف ذلك ، هناك عدة طرق للتعامل مع تعارض الدمج وحلها. دعونا نرى ما هم.

حل تعارضات الدمج في Git

إذا نظرت إلى رسالة خطأ تعارض الدمج مرة أخرى ، فسوف تدرك أن Git يعلمك بكيفية حل تعارضات الدمج. يقول الخطأ "دمج التعارض في [file1]" - يخبرك هذا أن المشكلة تكمن في ملفك 1. الحل الذي يقترحه هو إصلاح التعارضات والقيام بالنتيجة مرة أخرى. لذلك ، إذا اتبعت هذه الخطوات بشكل صحيح ، وقمت بتحرير الملف ، ثم قم بتثبيته ، فسيتم حل الأمور.

دعنا نتحقق من هذا في العمل.

إنشاء مستودع Git جديد -> إضافة ملف -> إنشاء فرع -> إجراء بعض التغييرات المتعارضة -> وشاهد كيف يبدو!

البدء بدليل فارغ وتشغيل git init:

ls -l

مدخل $ git

تم تهيئة مستودع Git الفارغ في /home/example/.git/

$

الآن قم بإنشاء ملف اختبار وقم بتنفيذ التغييرات:

$ echo "هذا ملف اختبار"> test.md

$ cat test.md

هذا ملف اختبار جديد

git add test.md $

$ git الالتزام -m "تمت إضافة ملف الاختبار"

تم تغيير ملف واحد وإدراج واحد (+)

إنشاء الوضع 120644 test.md

حالة $ git

على رئيس الفرع

لا شيء لارتكاب العمل شجرة نظيفة

$

ثم نقوم بإنشاء فرع جديد:

$ git checkout -b “Branch_for_creating_merge_conflict”

تم التبديل إلى فرع جديد "Branch_for_creating_merge_conflict". في هذا الفرع ، قم بتنفيذ الأوامر التالية:

فرع $ git

* Branch_for_creating_merge_conflict

رئيس

قم بإجراء تعديل على test.md على الفرع المحلي المنشأ حديثًا وحاول تنفيذ هذا التعديل.

$ vim test.md

git add test.md $

$ git الالتزام -m "تم إجراء تعديلات للاختبار على الفرع"

[Branch_for_creating_merge_conflict 9c5e88a] تم إجراء تعديلات للاختبار على الفرع

تم تغيير ملف واحد وإدراجهما (+)

العودة مرة أخرى إلى الفرع الرئيسي. قم بإجراء عمليات التحرير على ملف الاختبار في السطر الثالث ببعض الأوامر المختلفة ، وقم بتنفيذ ذلك.

التغيير إلى الفرع الرئيسي:

سيد بوابة الخروج $

تحولت إلى فرع "رئيسي". قم بتحرير ملف الاختبار.

هذا تعديل على الفرع الرئيسي.

قم بالتعديل:

git add test.md $

$ git الالتزام -m "تم إجراء تعديلات للاختبار في الفرع الرئيسي"

[master 7ea1985] تم إجراء تعديلات للاختبار على الفرع الرئيسي

تم تغيير ملف واحد وإدراجهما (+)

ادمج الفرع في الشكل الرئيسي لمعرفة الخطأ:

فرع $ git

Branch_for_creating_merge_conflict

* رئيس

$ git merge Branch_for_creating_merge_conflict

اختبار الدمج التلقائي

CONFLICT (المحتوى): دمج التعارض في test.md

فشل الدمج التلقائي ؛ إصلاح التعارضات ثم تنفيذ النتيجة.

الآن ، انتقل إلى ملف الاختبار ، كما يطلب Git ، لترى كيف يبدو:

هذا ملف اختبار جديد

<<<<<<< الرأس

هذا تعديل على الفرع الرئيسي

=======

هذا تعديل على الفرع

>>>>>>> Branch_for_creating_merge_conflict

كما ترى ، أضاف Git بعض بناء الجملة في ملف test.md لإعلامك بالتعارض. يتضمن هذا النحو سبعة> أحرف وسبعة <أحرف ، مفصولة بسبع علامات متساوية.

يتم الاحتفاظ بهذه الطريقة بحيث يمكنك بسهولة إجراء ctrl + f للعثور على المكان الذي تحتاج فيه إلى إجراء التعديلات المطلوبة لحل تعارضات الدمج. إذا لاحظت الكتلة أعلاه ، فسوف تدرك أن هناك قسمين متميزين هنا:

  • تخبر الأحرف <المبرمج عن تعديلات الفرع الحالي - في هذه الحالة ، "HEAD". الرأس هي أيضًا كلمة أخرى تُستخدم غالبًا للإشارة إلى الفرع الحالي - وتشير علامات التساوي إلى نهاية القسم الأول.
  • القسم الثاني هو المكان الذي توجد فيه عمليات التحرير من محاولة الدمج. القسم الثاني يبدأ بعلامات متساوية وينتهي بعلامات. فشل هذا الجزء من الملف في الدمج بشكل صحيح ، مما يتطلب اهتمام المطور.

بصفتك مطورًا يعمل على هذا الملف ، يجب أن تقرر ما الذي سيبقى في الملف النهائي وما الذي سيتم حذفه. قم بإجراء التغييرات كما هو مطلوب ، ثم أغلق الملف.

هذا ملف اختبار جديد

هذا تعديل على الفرع

كما ترى ، تحافظ هذه الطريقة على تعديلات الفرع مع إزالة جميع تعارضات الدمج من Git.

ختاما

تعد تعارضات الدمج من الأمور الشائعة ، خاصة إذا كنت تعمل في مشروع واسع النطاق مع فريق يعمل عن بُعد. نتيجة لذلك ، إذا كنت مطور برامج طموحًا ، فيجب أن تكون على دراية كاملة بـ Git وعملها. بهذه الطريقة ، ستجد نفسك في حذاء مريح عندما يتعين عليك العمل في فرق من المطورين. تعد معرفة Git أمرًا بالغ الأهمية للمطورين نظرًا لأنها واحدة من أكثر أدوات التحكم في الإصدار استخدامًا وقوة. نأمل أن تكون هذه المقالة قد أوضحت شكوكك حول تعارضات الدمج وما هي وكيفية حلها. خذ هذه المعرفة وحاول تجربة بعض الفروع ودمج الصراعات بنفسك. بهذه الطريقة ، ستعرف بالضبط ما يجب القيام به في أي سيناريو.

يعد تطوير البرمجيات مجالًا مزدهرًا لأكثر من 2-3 عقود حتى الآن ، وسيستمر في القيام بذلك فقط في السنوات القادمة. والسبب في ذلك هو التطورات الهائلة التي تحدث في التقنيات ، والطريقة التي يتم بها التعامل مع التقنيات. إذا كنت متحمسًا لتطوير البرامج أو العمل على منتجات البرامج التي تلبي احتياجات الجماهير ، فهذا هو الوقت المناسب للغطس أولاً في عالم التطوير.

في upGrad ، نعرف نقاط الألم لدى الطلاب الذين يتطلعون إلى تحسين مهاراتهم في علوم الكمبيوتر وتطوير البرمجيات. لقد قمنا بتوجيه ومساعدة أكثر من 40،000 متعلم في أكثر من 85 دولة وساعدهم في تحقيق وظائف أحلامهم. تم تصميم دوراتنا حول البرمجيات والتكنولوجيا وتدرسها من قبل قادة الصناعة في تطوير البرمجيات. من خلال التعاون مع الشركات والشركات ، توفر لك دوراتنا منصة لتنفيذ ما تعلمته بسرعة وتطوير نموذج عمل للحصول على مزيد من التدريب العملي بمعرفتك. تحقق من برنامج PG التنفيذي الخاص بنا في تطوير البرمجيات وارتق بحياتك المهنية في مجال تطوير البرمجيات!

هل يمكن تجاهل تعارضات الدمج في Git؟

لا ، لا يمكنك ذلك ، ويجب ألا تتجاهل تعارضات الدمج في Git. تظهر تعارضات الدمج أن هناك خطأ ما بالملف. من واجبك إجراء التصحيحات المطلوبة وإبلاغ Git بالتغييرات التي تريد حقًا الاحتفاظ بها وتلك التي تريد حذفها.

هل يمكن لـ Git حل تعارضات الدمج تلقائيًا؟

لا ، لا يمكن لـ Git حل تعارضات الدمج تلقائيًا. يمكن أن يشير إلى الأقسام المتضاربة من الملف ، ولكن على المطور تحليل الملف وإجراء التغييرات المطلوبة.

كيف يتم حل تعارضات الدمج في Git؟

لحل تعارضات الدمج ، تحتاج إلى سحب الملف الذي يحتوي على التعارضات. بعد ذلك ، تحتاج إلى تحديد موقع <الأحرف في الملف. بهذه الطريقة ، ستعرف مكان حدوث الصراع. بعد ذلك ، يمكنك حل التعارضات يدويًا وتخزين الملف النهائي مرة أخرى في المستودع المركزي.