Git وGitHub / المتوسط: إدارة التغيير التعاوني / الدرس 8
حل التعارض كتكامل دلالي
افحص الأساس والطرفين واختر السلوك المقصود وتحقق من اللقطة المحسومة قبل المتابعة.
في هذه الصفحة
أهداف الدرس
- اقرأ مراحل الفهرس غير المدمجة وحالة العملية.
- احسم المحتوى بقصد أو ألغ عملية مختبر بدأت نظيفة.
يشير التعارض لتركيب غير محسوم
يحدث التعارض عند عجز Git عن اختيار نتيجة آلية وفق العملية والاستراتيجية ولا يثبت خطأ زميل. قد يلزم الطرفان أو نتيجة ثالثة. حدد الدمج أو إعادة الأساس أو الالتقاط أو التخزين لأن المتابعة والأسماء سياقية. ابدأ بالحالة وحفظ المهم. يسهل إلغاء دمج بدأ نظيفاً أكثر من خلطه بتعديلات غير مرتبطة.
افحص الأساس والطرفين
لتعارض محتوى عادي بالدمج يحفظ الفهرس المرحلة 1 للأساس و2 للجاري و3 للآخر. قد تغيب مرحلة بالإضافة والحذف. تقرأ الأوامر النسخ دون ترجيح. أثناء إعادة الأساس تبدو ours وtheirs معكوسة لأن الإيداع يعاد على أساس جديد؛ لا تحفظ الكلمتين كملكية دائمة. اقرأ المحتوى والحالة قبل اختصارات الاختيار.
git status --short
git ls-files -u -- notes.txt
git show :1:notes.txt
git show :2:notes.txt
git show :3:notes.txt
يتطلب مختبراً غير فيه الفرعان السطر الأصلي نفسه. تظهر المراحل الأساس والسطرين المختلفين. يفيد الفحص أثناء وجود حالة الفهرس غير المدمجة فقط.
اختر السلوك قبل إزالة العلامات
تحدد العلامات بدائل نصية ولا يكتمل الحل بحذفها. اقرأ السياق والمطالب والاختبارات والمخطط والواجهة. اختر طرفاً أو اجمع أو ابنِ نتيجة جديدة متماسكة. يختلف الثنائي والنقل عن الأسطر. افهم مصدر المولد وأعد توليده بالأداة لا تحرير الناتج الغامض. سجل سبب الحل الذي يتجاوز الرقعتين لتقيّم المراجعة التكامل نفسه.
رحّل النتيجة وتابع العملية الصحيحة
بعد تحرير الملف يخبر git add بحسم المسار بتخزين النتيجة ولا يتحقق من سلوكها. افحص المرحل والمسافات والمسارات الباقية والاختبارات ثم تابع. يكمل المثال دمجاً بهوية اصطناعية وتستخدم إعادة الأساس أو الالتقاط واجهة --continue الخاصة. لا تتابع عميانياً مع عملية مختلفة أو مسارات عالقة.
printf 'Combined notebook title\n' > notes.txt
git add -- notes.txt
git diff --cached --check
git diff --name-only --diff-filter=U
git -c user.name="Lab Author" -c user.email="lab@example.invalid" commit -m "Resolve notebook title integration"
لا يطبع فحص غير المدمج شيئاً بعد حل جميع تعارضات المختبر. ينشئ commit نتيجة الدمج عند وجود دمج قائم فقط. المقتطف سياقي ولا يطبق على مستودع العمل.
ألغِ بقصد وحسّن التكامل لاحقاً
إذا تعذر الثقة فاحفظ الملاحظات واستخدم إلغاء العملية مثل merge --abort لدمج بدأ نظيفاً. تعقد التعديلات السابقة الاستعادة ولذلك يهم التحضير. اطلب سياق المجال لا اختر لإسكات الأداة. تقلل التغييرات الصغيرة والتنسيق والاختبارات الغموض. افحص الرسم والمحتوى والعلامات والتكرار بعد الإكمال. الحالة بلا تعارض جزء واحد من الحل المتحقق.
الأخطاء الشائعة وإصلاحها
تزال العلامات وينكسر السلوك
- لماذا يحدث؟
- عومل الحل تنظيف نص فقط.
- كيف تصلحه؟
- أعد تقييم السلوك واختبره.
- كيف تتجنب تكراره؟
- راجع الافتراضات قبل الترحيل.
يختار اختصار الطرف محتوى خطأ
- لماذا يحدث؟
- فُسرت أسماء الطرفين دون سياق.
- كيف تصلحه؟
- افحص المراحل والمحتوى قبل الاختيار.
- كيف تتجنب تكراره؟
- اشرح معنى الطرفين بحسب العملية.
يعجز الإلغاء عن إعادة تعديلات غير مرتبطة بوضوح
- لماذا يحدث؟
- بدأت العملية بعمل غير مودع مختلط.
- كيف تصلحه؟
- احفظ الملفات وافحص التعافي بعناية.
- كيف تتجنب تكراره؟
- ابدأ من حالة محمية مفهومة.
اختبر فهمك
1. يضيف الطرفان تحققاً مطلوباً للدالة نفسها. لماذا خطر اختيار طرف كامل؟
اعرض الحل المشروح
قد يسقط مطلب الآخر بصمت. اقرأ الأساس والتغييرين وابنِ قاعدة مجمعة واختبر الحدود والتفاعل. قد تكون الصحيحة نسخة ثالثة.
2. تتوقف إعادة أساس وينفذ متعلم merge --abort. ما الموجه؟
اعرض الحل المشروح
اقرأ الحالة للعملية الفعلية واستخدم واجهتها الموثقة واحفظ العمل. لا تجعل العلامات المتشابهة أمر التعافي واحداً لكل العمليات.
أهم ما تعلمته
- احسم المعنى ثم علّم المسار.
- تفسر مراحل الفهرس والحالة البدائل.
- يشمل التحقق الاختبارات والمحتوى لا الحالة وحدها.