شرح صفوف ومحتوى الفقرة
في أغلب الأحيان، ينجح Git في دمج التعديلات الموزعة على ملفات مختلفة أو حتى فقرات متباعدة داخل نفس الملف تلقائياً. لكن تعارض الدمج (Merge Conflict) يقع في حالتين محددتين:
- تعديل نفس السطر بطريقتين مختلفتين: عندما يغيّر الفرع الحالي (
HEAD) والفرع المراد دمجه نفس الأسطر البرمجية داخل نفس الملف منذ افتراقهما عن الجد المشترك. - تعارض الحذف مع التعديل: عندما يحذف أحد الفرعين ملفاً بينما يجري الفرع الآخر تعديلات داخل ذلك الملف.
وبدلاً من التخمين العشوائي وإتلاف الكود، يوقف Git عملية الدمج مؤقتاً ويطلب منك اتخاذ القرار الهندسي بالحسم.
Shell
# Attempt to merge a branch with competing line edits
git switch main
git merge feat-pricing
# Auto-merging index.html
# CONFLICT (content): Merge conflict in index.html