author avatar
      كبار مدير المنتج
   
آخر تحديث بواسطة سارة محمد 6 أغسطس 2026

ملخص
هل نفذت أمر `git clean` وفقدت ملفاتك بالخطأ؟ يرشدك هذا الدليل إلى أفضل الطرق التقنية لاستعادتها، بدءاً من استغلال "الكائنات المعلقة" (Dangling Objects) وسجل التعديلات المحلي، وصولاً إلى النسخ الاحتياطية. كما يشرح لك كيفية فحص القرص لاسترجاع الملفات غير المتتبعة (Untracked files). تابع القراءة لتعرف كيف تستعيد بياناتك خطوة بخطوة.



بمجرد أن تدرك أنك نفذت الأمر الخاطئ، يسيطر عليك الذعر. تختفي ملفاتك .js و.py و.html أو ملفات الإعدادات، ويظهر لك Git أن مجلد العمل نظيف—لا توجد تغييرات غير مرحّلة، ولا توجد طريقة واضحة للتراجع.
استعادة الملفات المحذوفة بواسطة git checkout أو clean
الخلاصة: يقوم git clean بحذف الملفات من القرص دون شبكة أمان. على عكس الملفات المرفوعة، لا يوجد سجل في Git للملفات غير المتعقبة تمامًا. يقوم نظام التشغيل بوضع علامة على مساحتها كمساحة متاحة، لكن البيانات الخام غالبًا ما تبقى حتى يحل محلها شيء آخر. تستغل جميع طرق الاستعادة هذه الفترة الزمنية القصيرة قبل فقدان البيانات نهائيًا.
إليك ما تزيله الأوامر الرئيسية فعليًا:
- git clean -f: يحذف الملفات غير المتعقبة (وليس المجلدات).
- git clean -fd: يحذف الملفات غير المتعقبة والمجلدات.
- git clean -xdf: يحذف جميع الملفات غير المتعقبة والمتجاهلة، بما في ذلك مخرجات البناء وإعدادات بيئة التطوير.
- git checkout. (أو git restore. ): يتخلص من التغييرات المحلية على الملفات المتعقبة.
- git switch -f: يقوم بتبديل الفروع بالقوة ويمسح أيضًا التغييرات المتعقبة غير المرفوعة.
من وجهة نظر Git، فقط الملفات المرحّلة (Staged) (git add) هي التي قد تكون قابلة للاستعادة من الكائنات المعلقة. كل شيء آخر يعتمد على بيئة التطوير الخاصة بك، أو النسخ الاحتياطية لنظام التشغيل، أو أداة استعادة الملفات.

الخطوة الأولى: تحديد مسار الاستعادة المناسب لحالتك

عاجل: توقف فورًا عن استخدام القرص المتضرر—فأي عملية حفظ جديدة أو إنشاء ملف قد يؤدي إلى الكتابة فوق البيانات التي تأمل في استعادتها.

استخدم الجدول أدناه لتحديد الخطوة الأنسب لحالتك لاستعادة الملفات بعد git clean، مما يوفر وقتك ويزيد فرص النجاح.
💻 حالتك🧭 أفضل إجراء أولي🌟 احتمالية النجاح

🧩 قمت بتشغيل git add قبل git clean

🔍 استخدم git fsck --lost-found لتحديد الكائنات المعلقة

عالية – عادة ما تبقى البيانات

🗃️ ملفات غير متعقبة تمامًا (لم تُعد أو تُرفع مطلقًا)

🛑 أوقف الكتابة فورًا → جرب برنامج استعادة خارجي (مثل Renee Undeleter) لفحص على مستوى القرص

⚠️ متوسطة إلى عالية إذا تحركت بسرعة

🚫 الملفات المتجاهلة التي تم حذفها بواسطة git clean -x أو git clean -xdf

🧠 نفس الأمر بالنسبة للملفات غير المتعقبة؛ تحقق من سجل التحرير المحلي أولاً

🔄 متفاوتة – قد يساعد السجل المحلي لبيئة التطوير

🧠 السجل المحلي لبيئة التطوير نشط (VS Code، JetBrains)

⏳ قم بالاستعادة من السجل المحلي فورًا

عالية، خاصة للتعديلات الحديثة

☁️ النسخة الاحتياطية للنظام أو السحابة تغطي المجلد

♻️ استعادة من النسخة الاحتياطية

✅✅ عالية جدًا إذا تم تشغيل النسخة الاحتياطية مؤخرًا

إذا قمت بإعداد الملفات قبل الحذف، ابدأ بطريقة git fsck. إذا كنت تستخدم بيئة تطوير مع سجل محلي، فهذا هو أسرع طريق للاستعادة. لجميع الحالات الأخرى، اذهب مباشرة إلى قسم Renee Undeleter بعد التحقق من خيارات الاستعادة الأخف أدناه.
نقطة ساخنة استعادة الكود المفقود وملفات المشروع فورًا استعادة الملفات

استعادة البيانات قوية يمكن استعادة البيانات حتى الأجهزة التي بها الكثير من القطاعات التالفة.

دعم لأجهزة متعددة بطاقة SD/SDHC/SDXC، قرص USB، قرص صلب، قرص SSD، كمبيوتر، إلخ.

استعادة أنواع الملفات الصور، الفيديو، الصوت والمستندات ورسائل البريد الإلكتروني، إلخ.

سهل لاستخدام فقط 3 خطوات بسيطة لإكمال الاسترداد، ودعم معاينة الملفات قبل الاسترداد.

التوافق يدعم أنظمة تشغيل Windows و Mac OS

سهل لاستخدام فقط 3 خطوات بسيطة لإكمال الاسترداد

استعادة أنواع الملفات الصور، الفيديو، الصوت والمستندات، إلخ.

دعم لأجهزة متعددة بطاقة ذاكرة، قرص USB، قرص صلب، قرص SSD، إلخ.

تجربة مجاناتجربة مجاناتجربة مجانا قد تم تنزيل مجانا 6374 مرة!

خيارات الاستعادة قبل استخدام برامج استعادة الملفات

قبل إجراء فحص كامل للقرص، جرب هذه الطرق الثلاث الأخف. كلما قل استخدامك للقرص، زادت فرصك.

الطريقة الأولى: استعادة الملفات المرحّلة مسبقًا باستخدام git fsck --lost-found

إذا استخدمت git add على ملف، قام Git بتخزين محتواه ككائن blob. حتى بعد git clean، قد يظل هذا الـ blob موجودًا ككائن معلق—على الأقل حتى يتم تشغيل ميزة جمع المهملات (Garbage Collection) في Git. للبحث عنها:

git fsck –lost-found

سيقوم Git بمسح قاعدة بيانات الكائنات الخاصة به وكتابة أي عناصر معلقة أو blobs في .git/lost-found/other/. لن تظهر أسماء الملفات الأصلية، بل فقط تجزئة المحتوى (Hash)، لكن بالنسبة للكود المصدري، يبقى المحتوى هو الأهم.
Pros:
  • لا حاجة لبرامج إضافية
  • يعمل مع أي مستودع تم استخدام git add فيه
  • مسح سريع لمجلد.git المحلي

Cons:

  • تفقد أسماء الملفات – يجب عليك فحص كل blob
  • يعمل فقط مع الملفات التي أعددتها قبل الفقدان
  • غير مفيد للملفات غير المتعقبة تمامًا التي لم تُضف مطلقًا

كيفية القيام بذلك

1. افتح الطرفية في مجلد مشروعك.
2. شغّل الأمر git fsck --lost-found وانتظر حتى ينتهي.
أمر git fsck --lost-found
3. افتح المجلد .git/lost-found/other/ (قد تحتاج إلى إظهار الملفات المخفية).
4. أعد تسمية الـ blobs المحتملة بالامتداد الصحيح (مثل .js ، .py ) وافتحها في محررك للتحقق من المحتويات.
5. انسخ أي ملفات مستعادة إلى مكان آمن.
إذا لم تقم بإعداد الملفات مطلقًا، فلن تعمل هذه الطريقة—انتقل إلى الخيار التالي.

الطريقة الثانية: استرداد الملفات من سجل التحرير المحلي لبيئة التطوير

غالبًا ما تحتفظ المحررات الحديثة بسجل نسخ احتياطي خاص بها أثناء عملك. حتى بعد git clean، يمكن أن تبقى هذه اللقطات. VS Code و IntelliJ IDEA و WebStorm وغيرها من بيئات JetBrains توفر سجلًا محليًا يمكن أن يحفظ عملك لأيام.
Pros:
  • يتم الحفاظ على أسماء الملفات الأصلية وهيكل المجلدات
  • الاستعادة تتم بنقرة بسيطة داخل المحرر
  • لا يتطلب معرفة بسطر الأوامر

Cons:

  • يعمل فقط إذا تم فتح الملف داخل بيئة التطوير مؤخرًا
  • يعتمد الاحتفاظ بالسجل على إعدادات بيئة التطوير
  • لا يشمل الملفات التي لم تُفتح في المحرر مطلقًا

VS Code

1. انقر بزر الماوس الأيمن على مجلد في الشريط الجانبي للمستكشف واختر Local History: Find … (قم بتثبيت إضافة “Local History” إذا لزم الأمر).
2. تصفح إدخالات المخطط الزمني، وحدد الملف المفقود، وانقر على استعادة.

JetBrains (IntelliJ/WebStorm/PyCharm)

1. انقر بزر الماوس الأيمن على المجلد في نافذة أدوات المشروع → Local HistoryShow History.
2. حدد موقع الملف المحذوف، اختره، وانقر على أيقونة الإعادة.
إذا لم تجد ملفك في بيئة التطوير ولا في سجلها المحلي، فتحقق من النسخة الاحتياطية للنظام أو السحابة بعد ذلك.

الطريقة الثالثة: استعادة الملفات من النسخ الاحتياطية للنظام أو السحابة

إذا كنت تستخدم Time Machine (macOS) أو محفوظات الملفات (Windows) أو المزامنة السحابية (OneDrive، Google Drive، Dropbox)، فقد تكون ملفاتك المحذوفة لا تزال متاحة. ينسى الكثيرون أن هذه تعمل تلقائيًا—حان وقت التحقق.
نافذة محفوظات الملفات في Windows تعرض إصدارات الملفات للاستعادة
Pros:
  • يستعيد أسماء الملفات والمسارات والطوابع الزمنية بدقة
  • لا حاجة لمسح أو تجزئة إضافية
  • مدمج في نظام التشغيل أو مثبت مسبقًا

Cons:

  • يتطلب أن تكون النسخة الاحتياطية قد تمت قبل الفقدان
  • قد تكون المزامنة السحابية قد نشرت الحذف بالفعل
  • قد تتأثر أقراص النسخ الاحتياطي أيضًا إذا كانت تتزامن فورًا

Time Machine (macOS)

1. قم بتوصيل قرص النسخ الاحتياطي وافتح Time Machine.
تشغيل Time Machine على نظام macOS
2. انتقل إلى مجلد مشروعك، وارجع بالزمن، وانقر على استعادة على الملفات المفقودة.

محفوظات الملفات (Windows)

1. اذهب إلى لوحة التحكممحفوظات الملفاتاستعادة الملفات الشخصية.
تحديد محفوظات الملفات
2. تصفح إلى مجلدك، واختر الإصدار السابق، وانقر على زر الاستعادة الأخضر.
محفوظات الملفات في Windows

التخزين السحابي

سجل الدخول إلى واجهة الويب (مثل onedrive.live.com)، وتصفح إلى المجلد، واستخدم محفوظات الإصدارات أو سلة المحذوفات لاستعادة إصدار سابق.
إذا لم تستعد هذه الطرق ملفاتك، فلا يزال لديك خيار قوي واحد متبقي: فحص على مستوى القرص.

استعادة الملفات بعد git clean باستخدام Renee Undeleter

إذا كانت ملفاتك لم تُرفع مطلقًا، ولم تُنسخ احتياطيًا، ولم تترك أثرًا في بيئة التطوير، فإن الاستعادة تعتمد على ما تبقى على القرص نفسه. وهنا تبرز أهمية أداة استعادة مخصصة مثل Renee Undeleter. صُممت لحالات الحذف العرضي، والأقسام المهيأة، وأنظمة الملفات غير القابلة للقراءة، حيث تقوم بمسح قطاعات القرص الأساسية وإعادة بناء الملفات بناءً على البصمات الرقمية الفريدة —بما في ذلك أكثر من 400 تنسيق مثل الكود المصدري ( .js ، .py ، .java ، .json ، .xml ، .yaml ، .html ، .css ، .md ، وغيرها الكثير).
نقطة ساخنة استعادة الكود المحذوف بواسطة git clean باستخدام Renee Undeleter استعادة الملفات

استعادة البيانات قوية يمكن استعادة البيانات حتى الأجهزة التي بها الكثير من القطاعات التالفة.

دعم لأجهزة متعددة بطاقة SD/SDHC/SDXC، قرص USB، قرص صلب، قرص SSD، كمبيوتر، إلخ.

استعادة أنواع الملفات الصور، الفيديو، الصوت والمستندات ورسائل البريد الإلكتروني، إلخ.

سهل لاستخدام فقط 3 خطوات بسيطة لإكمال الاسترداد، ودعم معاينة الملفات قبل الاسترداد.

التوافق يدعم أنظمة تشغيل Windows و Mac OS

سهل لاستخدام فقط 3 خطوات بسيطة لإكمال الاسترداد

استعادة أنواع الملفات الصور، الفيديو، الصوت والمستندات، إلخ.

دعم لأجهزة متعددة بطاقة ذاكرة، قرص USB، قرص صلب، قرص SSD، إلخ.

تجربة مجاناتجربة مجاناتجربة مجانا قد تم تنزيل مجانا 6374 مرة!
إليك لماذا يُعد Renee Undeleter مثاليًا للاستعادة بعد git clean :
- المسح بالتوقيع: يعثر على الملفات حتى عندما يكون جدول الملفات قد اختفى.
- تحليل كامل (قسم) و تحليل كامل (قرص): تعمق أكثر عندما لا يجد مسح ضوئي سريع ملفاتك.
- معاينة قبل الاستعادة: تتيح لك فحص ملفات الكود قبل الاستعادة، بحيث تحتفظ فقط بما لا يزال صالحًا.
- احفظ الملفات المستعادة على قرص منفصل، لتجنب الكتابة فوقها عن طريق الخطأ.

خطوة بخطوة: استخدام Renee Undeleter بأمان بعد git clean

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

1. إيقاف عمليات الكتابة وتجهيز البيئة

✅ أغلق جميع البرامج التي قد تكتب على القرص (المتصفحات، المترجمات، بيئات التطوير، أدوات المزامنة).
🚫 لا تقم بحفظ أي ملفات جديدة أو إعادة تشغيل النظام إلا للضرورة القصوى.
✅ قم بتنزيل Renee Undeleter على قرص فعلي أو قسم آخر —ويفضل أن يكون على ذاكرة USB أو قرص داخلي آخر.

لا تقم أبدًا بتثبيت Renee Undeleter على القرص الذي كانت ملفاتك المفقودة مخزنة عليه—فالقيام بذلك قد يؤدي إلى الكتابة فوق البيانات القابلة للاستعادة.

2. اختيار وضع المسح المناسب

شغّل Renee Undeleter. توفر النافذة الرئيسية أربع وحدات. بالنسبة للملفات المحذوفة بواسطة git clean، ابدأ بـ تحليل سريع (قسم) —إنه مُحسّن لحذف الملفات الأخيرة ويتم بسرعة.
Renee Undeleter، تحديد تحليل سريع (قسم)
إذا لم يُظهر مسح ضوئي سريع ملفاتك المفقودة، فارجع وجرب تحليل كامل (قسم) (للمجلدات المهيأة أو التي تم تغييرها بشكل كبير) أو تحليل كامل (قرص) (إذا كان القسم نفسه غير قابل للوصول).

3. اختيار القسم وبدء المسح

حدد حرف القرص حيث كان مشروعك مخزنًا وانقر على التالي. في الشاشة التالية، اختر مسح ضوئي سريع للبحث في أول 30 جيجابايت—معظم الحالات الناتجة عن git clean تُعثر هنا. استخدم المسح العميق فقط إذا لم يجد مسح ضوئي سريع شيئًا؛ فهو أكثر شمولاً ولكنه يستغرق وقتًا أطول.
تحديد القسم للمسح السريع للقسم
تحديد مسح ضوئي سريع في تحليل سريع (قسم)
دع المسح يكتمل. يمكنك إيقافه مؤقتًا أو التوقف مبكرًا بمجرد رؤية الملفات التي تحتاجها.

4. معاينة الملفات واستعادتها

انقر نقرًا مزدوجًا على أي ملف لمعاينة محتوياته. هذا أمر بالغ الأهمية للكود—تأكد من أن ملف .js لا يزال يحتوي على أحدث منطق لديك قبل الاستعادة. حدد الملفات التي تريدها وانقر على استعادة.
معاينة ملف docx في Renee Undeleter

احفظ الملفات المستعادة دائمًا على قرص آخر. فكتابتها مرة أخرى على القرص الأصلي قد يؤدي إلى الكتابة فوق بيانات أخرى قابلة للاستعادة.

إذا لم تقم بتنزيل Renee Undeleter بعد، استخدم الروابط أدناه لتثبيته بأمان على قرص منفصل.
نقطة ساخنة استعادة الكود المفقود وملفات المشروع فورًا استعادة الملفات

استعادة البيانات قوية يمكن استعادة البيانات حتى الأجهزة التي بها الكثير من القطاعات التالفة.

دعم لأجهزة متعددة بطاقة SD/SDHC/SDXC، قرص USB، قرص صلب، قرص SSD، كمبيوتر، إلخ.

استعادة أنواع الملفات الصور، الفيديو، الصوت والمستندات ورسائل البريد الإلكتروني، إلخ.

سهل لاستخدام فقط 3 خطوات بسيطة لإكمال الاسترداد، ودعم معاينة الملفات قبل الاسترداد.

التوافق يدعم أنظمة تشغيل Windows و Mac OS

سهل لاستخدام فقط 3 خطوات بسيطة لإكمال الاسترداد

استعادة أنواع الملفات الصور، الفيديو، الصوت والمستندات، إلخ.

دعم لأجهزة متعددة بطاقة ذاكرة، قرص USB، قرص صلب، قرص SSD، إلخ.

تجربة مجاناتجربة مجاناتجربة مجانا قد تم تنزيل مجانا 6374 مرة!

الأسئلة الشائعة

هل يمكن التراجع عن git clean -fdx مباشرة؟

لا. لا يتتبع Git الملفات التي تمت إزالتها بواسطة git clean، لذلك لا يوجد أمر git undo-clean. استخدم git clean -n لمعاينة الحذف قبل تشغيل الأمر الحقيقي. بعد الحذف، يجب أن تعتمد على طرق الاستعادة الموضحة أعلاه.

ما الفرق بين الملفات المعدة والملفات غير المتعقبة في عملية الاستعادة؟

الملفات المرحّلة (Staged) يتم تخزين محتواها كـ Git blobs. حتى لو تم حذف النسخة العاملة، قد تبقى هذه الـ blobs ككائنات معلقة في .git . لم تتم إضافة الملفات غير المتعقبة مطلقًا إلى قاعدة بيانات Git، لذا لا توجد نسخة داخلية؛ يجب أن تتم عملية الاستعادة على مستوى نظام الملفات.

هل يقوم git checkout. بحذف الملفات نهائيًا؟

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

تعليقات المستخدمين

Page 1

ترك تعليق


تم إرسال تعليقك وهو في انتظار المراجعة.