Preview ng leksyon

إلغاء الأخطاء: الأوامر restore، reset، revert — الاستخدام الصحيح والخطير

واحدة من أكثر المواضيع طلبًا في المقابلات والعمل الفعلي هي كيفية إلغاء ما تم فعله بالفعل. سنشرح ثلاث أدوات بمستويات مختلفة من الإلغاء ونركز على الأهم: سنعرض سيناريوهات محددة حيث يؤدي reset --hard إلى تدمير العمل الجماعي، بينما revert هو البديل الآمن. حلول جيدة وأخرى سيئة - مع عواقب حقيقية.

git restore git reset git revert
Ano ang matututunan mo sa leksyong ito
  • ستكون قادرًا على إلغاء التغييرات بثقة في أي مرحلة: في دليل العمل، في منطقة الإعداد (index)، وفي تاريخ الالتزامات (commits).
  • ستفهم الفرق الجوهري بين reset و revert وستعرف في أي المواقف يكون كل منهما مناسبًا.
  • ستتعلم تجنب الأخطاء الشائعة التي يرتكبها المبتدئون عند إلغاء التغييرات في المستودع الجماعي.

Simula ng leksyon

Git restore: زر التراجع للملفات

  • Git restore — للتراجع عن التغييرات غير المُسجَّلة في commit
  • يعمل مثل زر التراجع في محرر الأكواد
  • آمن — لا يغيّر سجل commits
  • يرجع الملفات إلى آخر حالة مسجلة في commit

تخيل أنك حفظت ملفًا بالخطأ وفيه تعديل غير مرغوب، وتريد إرجاعه كما كان. Git restore يعمل مثل زر التراجع في محرر الأكواد؛ يرجع الملفات إلى آخر حالة مسجلة في commit. وعلى عكس أوامر التراجع الأخرى، restore تتعامل فقط مع التغييرات غير المُسجَّلة في commit، ولا تمس سجل المشروع. هذه أول أداة تلجأ إليها عند حدوث تعديل عشوائي وتريد إصلاح الموقف بسرعة دون مخاطرة بتاريخ التغييرات.

التراجع عن التغييرات في مجلد العمل

  • git restore file.txt — يرجع الملف إلى آخر commit
  • يلغي جميع التغييرات في مجلد العمل
  • آمن لسجل المشروع — لا يغيّر commits، لكنه لا يحتفظ بنسخة من التغييرات المُلغاة
  • تحقق من الحالة باستخدام git status قبل الاستعادة

لنفترض أنك قضيت نصف ساعة تعدّل ملف إعدادات، ثم لاحظت أنك تسير في اتجاه خاطئ. بدل أن تلغي كل تغيير يدويًا، نفّذ git restore config.yml. سيرجع الملف فورًا إلى حالة آخر commit. الأمر يشبه أن تغلق الملف من غير حفظ، لكن مع ضمان أنك ترجع إلى نسخة تعمل. فقط تذكر: إذا كنت تحتاج هذه التعديلات لاحقًا، خذ نسخة منها قبل الاستعادة.

# عرض عملي لاستعادة ملف
$ echo "تعديلات خاطئة" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status

إزالة ملف من منطقة الترحيل

  • git restore --staged file.txt — إزالة ملف من منطقة الترحيل
  • يحافظ على التغييرات في مجلد العمل
  • انتبه: من دون --staged ستُفقد التغييرات
  • افحص دائمًا git status قبل التنفيذ

من الأخطاء الشائعة أن تضيف بالخطأ ملفًا غير مرغوب فيه إلى منطقة الترحيل. مثلًا، نفّذت git add . فأضفت ملف إعدادات مؤقتًا. أمر git restore مع الخيار --staged واسم الملف settings.tmp سيزيله من منطقة الترحيل بأمان، مع الإبقاء على كل تغييراته في مجلد العمل. من دون الخيار --staged ستفقد تعديلاتك، لذلك افحص الحالة دائمًا باستخدام git status قبل تشغيل restore. الآن أصبحت تعرف كيف تلغي التغييرات قبل الإيداع. لكن ماذا لو دخل الخطأ بالفعل في سجل الإيداعات؟ هنا يأتي دور git reset.

# أضفنا ملفًا إلى منطقة الترحيل بالخطأ
$ git add config.tmp
$ git status

# نزيله من منطقة الترحيل مع الإبقاء على التغييرات
$ git restore --staged config.tmp
$ git status

# نتحقق من بقاء الملف في مجلد العمل
$ ls -la config.tmp

Buong leksyon ay para sa subscription

24 pang slide sa buong bersyon.

Mabubuksan ang video, lahat ng slide, tala, pagsusulit, AI tutor, at interview pagkatapos mag-sign in at mag-subscribe.

Mag-sign in o magparehistro Mag-subscribe

Nilalaman ng leksyon

  1. Git restore: زر التراجع للملفات
  2. التراجع عن التغييرات في مجلد العمل
  3. إزالة ملف من منطقة الترحيل
  4. Git reset: كيف تعمل إعادة لفّ سجل الإيداعات
  5. reset --soft الآمن: التغييرات تبقى في منطقة الترحيل
  6. reset --mixed القياسي: تغييرات في مجلد العمل
  7. reset --hard الخطير: حذف بلا رجعة
  8. reset: ثلاثة أوضاع، أمر واحد
  9. git reset --soft: نعيد كتابة سجل التغييرات بأمان
  10. متى نستخدم --mixed و --hard؟
  11. قائمة تحقق: أي reset تختار؟
  12. لماذا لا نكتفي بمحو الخطأ؟
  13. كيف يعمل git revert عمليًا
  14. إلغاء عدة تسليمات دفعة واحدة
  15. Reset: نعيد كتابة السجل محليًا
  16. Revert: نلغي التغييرات بأمان
  17. ماذا يحدث عند push: reset مقابل revert
  18. لماذا يُعد reset --hard خطيرًا
  19. مثال على فقدان التغييرات
  20. كيف نستعيد البيانات
  21. مخاطر التراجع في فرع مشترك
  22. تراجع آمن عبر revert
  23. التسلسل الصحيح للإجراءات
  24. متى تستخدم: restore أو reset أو revert
  25. قواعد التعامل مع السجل الشخصي والمشترك
  26. خطوات عملية عند حدوث خطأ
  27. الخلاصة والنشاط: سيّد التراجع

Mga artikulo tungkol sa araling ito

Lahat ng leksyon ng kurso

  1. مقدمة: Git من الصفر إلى مُطوّر محترف
  2. لماذا نحتاج إلى Git على الإطلاق — ولماذا لا يُقدّم عليك العمل دونه
  3. تثبيت وإعداد Git لأول استخدام
  4. المستودع الأول: init وadd وcommit وسحر الفهرس
  5. قراءة سجل المشروع: أوامر log و diff و show والتنقل في السجل
  6. الفروع: الواقع الموازي لرمزك البرمجي
  7. إلغاء الأخطاء: الأوامر restore، reset، revert — الاستخدام الصحيح والخطير
  8. GitHub والمستودعات البعيدة: كودك في السحابة
  9. العمل الجماعي: النسخ المتفرعة، الفروع المميزة وطلبات السحب
  10. نزاعات الدمج: لا داعي للذعر — افهمها وحُلّها
  11. سير عمل Git في الفرق الحقيقية: أي سير عمل تختار
  12. الأدوات المتقدمة: rebase، stash، cherry-pick والعلامات (tags)
  13. المشروع النهائي: محاكاة التطوير الجماعي الفعلي