git stash
حفظ التغييرات مؤقّتًا git stash
git stash يخبّئ تعديلاتك غير المكتملة جانبًا مؤقّتًا، ليعيد مجلّد العمل نظيفًا للتبديل السريع بين المهام.
أحيانًا تحتاج التبديل لفرع آخر بسرعة (لإصلاح عاجل مثلًا) بينما لديك تعديلات نصف منجزة لا تريد حفظها بـ commit ناقص. git stash يحفظ هذه التعديلات في مكان منفصل ويعيد مجلّد العمل لحالته النظيفة الأخيرة، ثم يعيدها لاحقًا بأمر آخر عند العودة.
يعمل كمكدّس (stack) — يمكنك تخبئة عدّة مجموعات تعديلات متتالية واسترجاعها بالترتيب الذي تريده، لا بالضرورة الأحدث فقط.
الصياغة
git stash [subcommand]
📄 مثال
git stash # يخبّئ التعديلات، يعيد المجلّد نظيفًا
git stash list # عرض كل المخبّآت المحفوظة
git stash pop # يسترجع آخر مخبّأ ويحذفه من القائمة
git stash apply stash@{1} # يسترجع مخبّأ محدّد مع الإبقاء عليه
git stash -u # يشمل الملفّات غير المتتبَّعة أيضًاأهم الخيارات
| الخيار | الوظيفة |
|---|---|
| pop | يسترجع آخر مخبّأ ويحذفه من القائمة |
| apply | يسترجع مخبّأ لكن يبقيه محفوظًا في القائمة للاستخدام مرّة أخرى |
| -u / --include-untracked | يخبّئ أيضًا الملفّات الجديدة غير المتتبَّعة، لا المعدَّلة فقط |
| drop / clear | حذف مخبّأ واحد أو كل المخبّآت نهائيًا |
💡 نصائح عملية
- استخدم git stash save "وصف" لتسمية المخبّأ عند وجود أكثر من واحد، فيسهل تمييزها لاحقًا
- stash حل مؤقّت فقط — للعمل الذي سيستغرق أيامًا، فرع جديد أنسب بكثير
⚠️ أخطاء شائعة
- نسيان أن stash محلّي فقط ولا يُرفع مع push، فيظن البعض أنه محفوظ على الخادم
- استخدام apply بشكل متكرر دون drop فتتراكم عشرات المخبّآت المنسية بمرور الوقت
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار GIT الكامل بالعربي.