كيفية حل دمج النزاعات في git

Kyfyt Hl Dmj Alnza At Fy Git



في هذا المنشور ، سوف نعرضك كيفية حل دمج النزاعات في git . يسمح GIT للمطورين بإنشاء فروع من قاعدة الشفرة الرئيسية لإجراء تغييرات مستقلة. يمكن بعد ذلك دمج هذه التغييرات في الكود الحالي. يمكّن هذا الفرق من العمل بالتوازي دون انتظار الآخرين لإكمال مهامهم.



  كيفية حل دمج النزاعات في git





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





كيفية حل دمج النزاعات في git

هناك عدة طرق ل حل دمج النزاعات في git اعتمادًا على سير العمل والأدوات ومستوى الراحة. يمكنك حلها مباشرة في المحطة باستخدام أوامر GIT ، أو استخدام محرر نصوص مثل VS Code ، أو الاعتماد على أدوات واجهة المستخدم الرسومية مثل سطح مكتب Github أو SourCetree أو Gitkraken. دعونا نفهم كيف تحدث تعارضات الدمج وكيفية حلها بمساعدة مثال بسيط باستخدام رمز GIT و Visual Studio (VS Code).



انتقل إلى حساب github الخاص بك وإنشاء مستودع جديد مع أ readme.md ملف. دعونا نسمي هذا الريبو دمج conflict-demo .

  مستودع جديد git

في الالتزام التالي (على الفرع الرئيسي) ، قم بتحرير readme.md ملف وإضافة بعض محتوى النص. ارتكاب التغييرات.



كيفية تثبيت نظام التشغيل على Virtualbox

ملحوظة: ليس من المطلوب تحرير readme.md بعد إنشاء المستودع. الغرض من هذه الخطوة (هنا) هو محاكاة التغيير في الفرع الرئيسي بحيث يمكن أن يحدث الصراع لاحقًا عند دمج فروع مختلفة تعدل نفس الملف أيضًا.

اذهب إلى رمز> مجنون L ونسخ الريبو https وصلة.

  نسخ رابط جيثب ريبو

بعد ذلك ، قم بإنشاء دليل على جهاز الكمبيوتر المحلي. اسمه شيء مثل TWC_GIT_MERGE_DEMO . افتح هذا الدليل في VS Code ، قم بتشغيل المحطة ( ثلاث نقاط> طرفية> محطة جديدة ) ، واستنساخ جيثب ريبو باستخدام:

git clone https://github.com/sangeetaghera2710/merge-conflict-demo.git

بعد ذلك ، انتقل إلى الريبو المستنسخة ، وإنشاء فرع جديد اسمه ميزة 1 :

cd merge-conflict-demo
git checkout -b feature1

  استنساخ repo في VS Code

أضف بعض النص إلى ملف readme.md ، ثم قم بالمرحلة وارتكاب التغييرات:

git add .
git commit -m "Added changes in feature1"
 Added changes in Feature1 branch

في هذا المثال ، استخدمنا git add . بدلاً من git add README.md
git add . المراحل التي تم تغييرها ، في حين أن DF82F619B34EE581735E611B6F53A4647A034E8 مراحل فقط الملف المحدد. أيضًا ، يستخدم git status لعرض الوضع الحالي لدليل العمل ومنطقة التدريج.

بعد ذلك ، انتقل إلى الفرع الرئيسي وإنشاء فرع آخر يدعى ميزة 2 :

git checkout main
git checkout -b feature2

الآن قم بتحرير الشيء نفسه readme.md ملف ، ولكن أضف سطرًا مختلفًا من النص. مرة أخرى ، المسرح والالتزام:

git add README.md
git commit -m "Added changes in feature2"

  تغييرات إضافية في فرع الميزات 2

عد الآن إلى الفرع الرئيسي ودمج الميزة 1 في ذلك:

git checkout main
git merge feature1

يجب أن يكتمل هذا الدمج دون أي صراعات.

  GIT دمج النجاح

ويندوز 7 مفتاح البيع بالتجزئة

بعد ذلك ، قم بالتبديل إلى ميزة 2 فرع ودمج الرئيسية المحدثة فيه:

git checkout feature2
git merge main

هذه المرة ، سيحدث تعارض دمج في ملف readme.md لأن كلا الفرعين قاموا بتعديل نفس القسم.

  دمج الصراع

يقرأ : كيفية دمج فرعين في git

حل النزاع دمج

عند حدوث تعارض دمج ، يضيف GIT علامات خاصة (<<<<<<< ، ======= ، >>>>>>) في الملفات المتأثرة لتسليط الضوء على الأقسام المتضاربة من كل فرع. تساعدك هذه العلامات على تحديد النزاعات ، مما يتيح لك تحديد الإصدار الذي يجب الاحتفاظ به يدويًا أو كيفية الجمع بين التغييرات قبل الانتهاء من الدمج.

افتح الملف المتضارب (readMe.md) في VS Code. سترى علامات الصراع كما هو موضح في الصورة أعلاه.

يوفر لك VS Code أربعة خيارات لحل النزاعات يدويًا:

  • قبول التغيير الحالي: الحفاظ على التغييرات من الميزات 2.
  • قبول التغيير الوارد: الحفاظ على التغييرات من الرئيسية (والتي تشمل الميزة 1).
  • قبول كلا التغييرات: الحفاظ على كلا المجموعتين من التغييرات.
  • قارن التغييرات: عرض الاختلافات قبل اتخاذ قرار.

  خيارات حل الصراع

انقر مقارنة التغييرات . عند النقر فوق مقارنة التغييرات في VS Code أثناء تعارض دمج ، فإنه يفتح جنبًا إلى جنب عرض فرق من الملف المتضارب. يعرض هذا العرض تغييرات فرعك الحالي (على اليسار) والتغييرات الواردة من الفرع الذي تندمجه (على اليمين). يتيح لك ذلك مقارنة كلا الإصدارين سطرًا قبل اختيار كيفية حل الصراع.

  مقارنة إصدارات الفرع

يمكنك بعد ذلك تحرير الملف يدويًا أو استخدام أحد الخيارات مثل قبول الحالية أو قبول الواردة أو قبول كلاهما مباشرة من هذا العرض.

مدير الجهاز من موجه الأوامر

بعد حل الصراع ، احفظ الملف. ثم المرحلة وارتكاب التغييرات.

git add README.md
git commit -m "Resolved merge conflict in README.md"

هذا كل شيء! لقد نجحت في حل تعارض دمج GIT باستخدام رمز Visual Studio.

أتمنى أن تجد هذا مفيدًا.

يقرأ: كيفية تنزيل وتثبيت Git في Windows .

كيف أعود إلى الالتزام بالجيت؟

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

اقرأ التالي: إصلاح غير قادر على العثور على git في المسار على جهاز الكمبيوتر Windows .

المشاركات الشعبية