المدونة

الصفحة الرئيسية / المدونة / كيفية حل تعارضات الدمج في Git

جدول المحتويات
الآلي, لا كود مكدس البيانات

تعلم كيف Astera يمكن لـ Data Stack تبسيط وتبسيط إدارة بيانات مؤسستك.

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

26 فبراير، 2024

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

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

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

في هذه المدونة ، سنتعلم كيفية حل الدمج الصراعات في جيت من داخل Asteraمنصة البيانات الخاصة بـ. ولكن قبل ذلك ، دعنا ننتقل بسرعة إلى ماهية النزاعات ولماذا تحدث.

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

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

توضح الصورة التالية كيف يمكن أن يحدث التعارض:

كيفية حل تعارض الدمج في git

دمج الصراع

لنفترض أن هناك مطورين ، A و B ، يعملان في نفس الفرع. يسحب كلا المطورين نفس الملف من ملف مستودع بعيد وإجراء تغييرات عليه. أكمل المطور B مهمته في وقت سابق ودفع الملف مرة أخرى إلى الخادم. حتى الان جيدة جدا.

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

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

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

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

الطريقة الأكثر شيوعًا لحل تعارض الدمج هي فتح الملف وإجراء التغييرات المطلوبة يدويًا. على سبيل المثال ، لنفترض أن هناك ملفًا نصيًا يسمى "conf.txt" تم تغييره مؤخرًا ويحتاج إلى دفعه إلى المستودع البعيد. ومع ذلك ، لا يمر الملف لأن التعارض يؤدي إلى توقف عملية الدمج.

في هذه الحالة ، سيتعين عليك استخدام أدوات سطر أوامر Git لحل التعارض. من المحتمل أن تتبع الخطوات التالية للقيام بذلك:

  • افتح الملف في محرر النصوص المفضل لديك
  • حدد التغييرات التي تسبب التعارض وقم بإجراء التغييرات اللازمة
  • استخدم "git add trouble.txt" لتنظيم الملف
  • استخدم "git الالتزام -m"رسالتك الالتزام هنا'" لتلتزم

تتضمن أوامر Git الأخرى التي تساعد في حل تعارضات الدمج ما يلي:

  • إعادة تعيين بوابة
  • فرق فرقه
  • دفعة غيت
  • دمج بوابة – إحباط
  • إعادة تعيين بوابة - مختلط
  • بوابة الخروج
  • حالة git
  • git rebase - تابع

حل تعارضات الدمج في Git من الداخل Asteraواجهة المستخدم الخاصة بـ

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

وبالمثل ، ستواجه تعارضًا عند وجود اختلافات في الملفات التي لها نفس الأسماء في المستودع المحلي الخاص بك والخادم البعيد.

لنأخذ مثالاً لفهم كيف يمكنك مواجهة تعارض وما عليك القيام به لحلها أثناء استخدام Git عبر Astera منصة البيانات. لنفترض أن لدينا فرعين محليين: Branch01 و Branch02.

كيفية حل تعارض الدمج: Git Branches

متصفح فروع Git بتنسيق Astera

يحتوي كل فرع على خطوط بيانات مختلفة ، ولكن الملفات المحفوظة فيها تحتوي على نفس الاسم ، "GitDataflow01". انظر الصور أدناه:

صورة توضح محتويات Branch01 مع أوامر Git بتنسيق Asteraواجهة المستخدم الخاصة بـ

فروع Git - Dataflow في Branch01 المحفوظة في ملف "GitDataflow01"

صورة توضح محتويات Branch02 مع أوامر Git بتنسيق Asteraواجهة المستخدم الخاصة بـ

فروع Git - Dataflow في Branch02 المحفوظة في ملف "GitDataflow01"

إذا حاولنا دمج Branch01 في الفرع الحالي (Branch02 في هذه الحالة) ، فسنحصل على خطأ بسبب التعارض ، وسيظهر الملف المتعارض تحت عقدة جديدة تسمى Conflicted في نافذة Git Changes. إذن لدينا الآن نزاع ، وقبل المتابعة ، علينا حله.

دعونا نرى كيف يمكننا القيام بذلك من الداخل Asteraواجهة المستخدم الخاصة بـ. ومع ذلك ، ضع في اعتبارك أنه في هذه المرحلة ، لدينا ثلاثة خيارات:

  • إحباط عملية الدمج
  • معاينة الملفات في كل فرع ، أو
  • تابع الحل بدون معاينة (في حال كنت متأكدًا من الإصدار الذي تريد الاحتفاظ به)

لحل هذا التعارض ، انقر بزر الماوس الأيمن فوق الملف ، GitDataflow01 في هذه الحالة ، وقم بتوسيع ملف حل خيار للاختيار من بينها البقاء محدثًا (محليًا) or خذ الوارد (عن بعد). كما توحي الأسماء ، فإن تحديد الخيار السابق سيحتفظ فقط بإصدار الملف من الفرع الحالي (Branch02) ، بينما سيؤدي تحديد الخيار الأخير فقط إلى الاحتفاظ بالإصدار من الفرع الذي يتم دمجه (Branch01).

كيفية حل تعارضات الدمج في git

حل تعارضات الدمج في Git within Asteraواجهة المستخدم الخاصة بـ

بعد ذلك ، سوف نلتزم ونقدم ملخصًا لإكمال عملية الدمج.

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

بدافع Asteraتكامل Git ، تحصل على أفضل ما في العالمين لتبسيط مشاريع إدارة البيانات الخاصة بك: Asteraموحد ، منصة إدارة البيانات بدون كود وإمكانيات التحكم في إصدار Git فائقة السرعة. الآن بعد أن عرفت كيفية حل تعارضات الدمج في Git ، اتخذ الخطوة التالية وجربها بنفسك! قم بالتسجيل في أ الإصدار التجريبي المجاني من 14 يومًا or جدولة عرض اليوم!

ربما يعجبك أيضا
ما هي المعالجة المسبقة للبيانات؟ التعريف والأهمية والخطوات
سلامة البيانات مقابل جودة البيانات: إليك مدى الاختلاف بينهما
كيفية بناء استراتيجية لإدارة البيانات لمؤسستك
مع مراعاة Astera لتلبية احتياجات إدارة البيانات الخاصة بك؟

أنشئ اتصالاً خاليًا من التعليمات البرمجية مع تطبيقات مؤسستك وقواعد البيانات والتطبيقات السحابية لدمج جميع بياناتك.

دعونا نتواصل الآن!
يتيح الاتصال