NahdaAIنهضة
Git & GitHub • المستوى الثاني • الدرس 4

نقل وتنظيف التغييرات (Git Stash & Branch Cleanup)

العودة لفهرس المستوى

أهداف الدرس

  • حفظ العمل غير المكتمل مؤقتاً بـ git stash للتنقل بين الفروع بأمان.
  • استعراض الرفوف المخزنة بـ git stash list واسترجاعها بـ git stash pop.
  • تنظيف الفروع المنتهية بـ git branch -d <name> بعد دمجها.
  • فهم الفرق بين stash pop (استرجاع + حذف) و stash apply (استرجاع فقط).

1. ما هو رف الحفظ المؤقت Git Stash؟

يسمح لك git stash بوضع تعديلاتك غير المكتملة في رف مؤقت (Stash Stack) وتنظيف مساحة العمل للتنقل بين الفروع، ثم إعادة تطبيقها لاحقاً بـ git stash pop.

bash
# سيناريو استخدام Stash

# أنت في منتصف ميزة ولم ترد حفظها كـ Commit
git stash              # ← حفظ التعديلات في الرف
git stash list         # ← عرض الرفوف: stash@{0}: WIP on main: ...

# الانتقال لمهمة عاجلة
git checkout main
# ... إصلاح عاجل ...

# العودة لعملك السابق
git checkout feature/navbar
git stash pop          # ← استرجاع + حذف الرف تلقائياً

2. أوامر Stash الشائعة

git stash

حفظ التعديلات الحالية في الرف وتنظيف مساحة العمل.

git stash list

عرض كل الرفوف المخزنة مع ترقيمها.

git stash pop

استرجاع أحدث رف وحذفه من القائمة.

git stash apply

استرجاع الرف دون حذفه (يبقى للاستخدام مرة أخرى).

3. تنظيف الفروع بعد الدمج

git branch -d <name>

حذف فرع آمن — يرفض الحذف إذا لم يُدمج (حماية من فقدان العمل).

git branch -D <name>

حذف قسري — يحذف حتى لو لم يُدمج (فقدان محتمل للعمل).

التطبيق العملي المباشر

تحدي الدرس الرابع: إدارة الرفوف وتنظيف الفروع

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

  1. هيّئ المستودع وأنشئ فرع feature/navbar مع التزام (موجود في الكود الأولي).
  2. عُد إلى main وأضف التغييرات بـ git add ..
  3. احفظ التعديلات في الرف بـ git stash.
  4. اعرض قائمة الرفوف بـ git stash list.
  5. استرجع التعديلات بـ git stash pop.
  6. احذف الفرع المنتهي feature/navbar بـ git branch -d feature/navbar.
⏳ جارٍ تحميل المحرر التفاعلي...