Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Git Reflog

آخر تحديث

يسجّل git reflog كل موضع أشار إليه HEAD - كل commit وcheckout وreset وrebase. ولأن Git يحتفظ بتلك الـ commits لبعض الوقت حتى بعد أن تغادر فروعك، فإن الـ reflog هو شبكة الأمان الخاصة بك: فهو يتيح لك العثور على العمل الذي بدا أن reset --hard أو rebase سيئ أو فرع محذوف قد دمّره، واستعادته.

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

git reflog يسجل كل موضع مرّ به HEAD، لذا يمكن العثور على commit ضاع بعد reset أو rebase واستعادته.

الصيغة

CommandWhat it does
git reflogيعرض المواضع الأخيرة لـ HEAD مع الـ hashes
git reflog show <branch>يعرض الـ reflog الخاص بفرع
git reset --hard HEAD@{1}يعيد HEAD إلى موضع سابق
git branch recovered <hash>يعيد إنشاء فرع عند commit مفقود

الاسترداد بعد خطأ

تراجع عن reset خاطئ بالعثور على الـ commit الذي كان قبل الـ reset.

StepCommandResult
1git reflogاعثر على الـ commit الذي كان قبل الـ reset
2git reset --hard HEAD@{1}استعد فرعك إليه

الأسئلة الشائعة حول git reflog

ما هو git reflog؟
إنه سجل لكل المواضع التي أشار إليها HEAD (وطرف كل فرع) في مستودعك المحلي - بعد الـ commits والـ checkouts والـ resets والـ merges والـ rebases. وعلى عكس git log الذي يتتبع سلسلة أسلاف الـ commits، فإن الـ reflog هو سجل زمني لأفعالك، وهذا ما يجعله مفيدًا للاسترداد.
كيف أسترد commit بعد git reset --hard؟
شغّل git reflog للعثور على مدخل الـ commit الذي كنت عليه قبل الـ reset (شيء مثل HEAD@{1})، ثم استخدم git reset --hard <that-hash> (أو HEAD@{1}) للعودة إليه. لم يُحذف الـ commit فعليًا - فقط لم يعد هناك فرع يشير إليه، ولا يزال الـ reflog يعرف الـ hash الخاص به.
كيف أستعيد فرعًا محذوفًا؟
اعثر على آخر commit للفرع في git reflog، ثم أعد إنشاء الفرع عنده: git branch <name> <hash>. طالما كان الحذف حديثًا (ضمن مدة انتهاء صلاحية reflog في Git، عادةً أسابيع)، تظل الـ commits قابلة للوصول بهذه الطريقة.
هل يعمل git reflog عبر النسخ (clones)؟
لا - الـ reflog محلي لمستودعك ولا يُدفع (push) ولا يُستنسخ. إنه يسجّل الأفعال على جهازك فقط. لهذا يمكنه إنقاذ الأخطاء المحلية، لكنه لا يستطيع استرداد شيء لم يوجد إلا في نسخة (clone) أخرى.
هل يمكنني التدرّب على هذا عبر الإنترنت؟
نعم. افتح ساحة الطرفية لتشغيل git reflog في صدفة حقيقية داخل متصفحك - دون الحاجة إلى تثبيت أي شيء. كما تغطي دورة Git التفاعلية المجانية من Coddy التراجع عن التغييرات والاسترداد خطوة بخطوة.
Coddy programming languages illustration

تعلّم Git مع Coddy

ابدأ الآن