محتويات الدورة

Git وGitHub / المتقدم: الثقة والحجم والتعافي / الدرس 18

السجل المرجعي والوصول وتخطيط التعافي

استعد العمل المودع المتحقق دون تحويل التحقيق لكتابة مدمرة غير لازمة.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اشرح السجل المرجعي المحلي وحدود الاحتفاظ.
  • ثبت الإيداعات المستعادة وتحقق قبل التكامل.

حدد المفقود فعلياً

قد يغيب الإيداع عن عرض الفرع ويبقى الكائن. يغير الحذف والانفصال وإعادة الأساس وreset الوصول دون محو فوري. يختلف غير المودع وقد لم يدخل قاعدة الكائنات. ابدأ بالحالة والمراجع والعملية ونسخة المهم الحالي وتجنب التنظيف والتقليم والتراجع المتكرر. حدد المفقود لا تجبر الفرع للشكل المألوف على حساب الجديد.

اقرأ تحركات المراجع المحلية

تسجل reflogs تحديثات محلية وفق الإعداد. يشمل HEAD غالباً التبديل والإيداع ويسجل الفرع حركته. هي أدلة محلية لا تدقيقاً مشتركاً يجلب من GitHub. تنتهي الإدخالات وقد تزيل الصيانة غير الواصل، فلا تعد بمدة عامة أو استرداد دائم. يتغير HEAD@{1} بإضافات السجل؛ افحص وحل هوية متحققة قبل الفعل. ليس سجل شخص آخر هدفك.

أنشئ مرجع تعاف قبل أي كتابة

يفترض المختبر إيداعاً منفصلاً ثم عودة main بلا تحريك HEAD لاحق. عند التسلسل نفسه يسمي HEAD@{1} الرأس المغادر. افحصه قبل الفرع واربط المتغير بالكائن المتحقق. بالفعلي اختر من سجلك لا تكرر المحدد عميانياً. يحفظ الفرع الوصول ويترك الجاري، فيسهل المقارنة والتكامل أكثر من reset فوري.

bash تثبيت إيداع مختبر منفصل متحقق
git reflog -6 --format='%h %gs'
candidate=$(git rev-parse 'HEAD@{1}^{commit}')
git show --stat "$candidate"
git branch recovery/notebook "$candidate"
git log -1 --format=%s recovery/notebook

يصح المحدد للتسلسل المذكور فقط ويُفحص مع السجل والمحتوى. الفرع جديد محلي ولا يتحرك main، ويطابق العنوان رسالة التجربة.

احفظ المراجع المودعة بحزمة مختبر

تجمع bundle الكائنات والمراجع الواصلـة للنقل أو النسخ دون شبكة وفق النطاق. لا تضم تلقائياً غير المتتبع أو غير المودع أو كل الإعداد أو كائنات السجل فقط. ثبت المهم أولاً. يكتب المثال بالأب المؤقت ويتحقق من المتطلبات. تختبر الخطة الفعلية الاستعادة والبيانات الأخرى؛ لا يثبت اسم backup التعافي دون تجربة معلومة النطاق.

bash إنشاء bundle والتحقق منها داخل التخزين المؤقت
git bundle create ../notebook-lab.bundle --all
git bundle verify ../notebook-lab.bundle

ينتمي المستودع والأب للمختبر. يختار --all المراجع ولا يحفظ الشجرة. يستعيد التحقق نسخة محلية أخرى من الحزمة بلا شبكة أو دفع.

كامل المستعاد وفق حالة المشاركة

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

الأخطاء الشائعة وإصلاحها

يشير محدد منسوخ لإيداع خطأ

لماذا يحدث؟
تغير النسبي بعمليات لاحقة.
كيف تصلحه؟
افحص السجل وهوية الكائن الحالية.
كيف تتجنب تكراره؟
ثبت المرشحين المتحققين سريعاً.

يفترض تضمين bundle لغير المودع

لماذا يحدث؟
اختلط نسخ المراجع بنسخ الملفات.
كيف تصلحه؟
احفظ الملفات بطريقة مستقلة مناسبة.
كيف تتجنب تكراره؟
حدد واختبر نطاق النسخ.

يتلف التنظيف المتكرر دليل التعافي

لماذا يحدث؟
سبقت الصيانة التشخيص والتثبيت.
كيف تصلحه؟
أوقف التغيير وافحص الباقي.
كيف تتجنب تكراره؟
اتبع الحفظ والفحص والتثبيت والتحقق.

اختبر فهمك

1. يغيب إيداع عن log main ويظهر بالسجل. ما الحفظ الحذر؟

اعرض الحل المشروح

افحص المحتوى والآباء وحل الهوية وأنشئ فرع تعاف. يحفظ الوصول دون تحريك main أو إتلاف الأحدث، ويراجع التكامل لاحقاً.

2. فُقد تعديل محرر لم يرحل أو يودع. هل يضمن reflog استعادته؟

اعرض الحل المشروح

لا؛ يسجل حركة المراجع لا محرراً اعتباطياً. احفظ الحالي وابحث بتاريخ المحرر والنسخ والملفات المسجلة واذكر الحدود.

أهم ما تعلمته

  • يبدأ التعافي بتحديد المفقود وحفظ الحالي.
  • السجل دليل محلي محدود لا نسخة دائمة.
  • ثبت وتحقق قبل تغيير المشترك.

المراجع الرسمية