ماذا يفعل الأمر git stash pop
؟
يُعتبر Git واحدًا من أكثر أنظمة التحكم بالإصدارات شيوعًا وانتشارًا بين المطورين، وذلك بفضل مرونته وقوته في إدارة الأكواد البرمجية. من بين الأوامر المفيدة جدًا التي يوفرها Git، نجد الأمر git stash pop
. إذا كنت مطورًا وتعمل مع Git، فمن المحتمل أنك سمعت بهذا الأمر أو استخدمته. ولكن ما الذي يفعله هذا الأمر بالضبط؟ في هذه المقالة، سنقدم شرحًا تفصيليًا حول الأمر git stash pop
، مع تقديم أمثلة عملية لتوضيح فائدته.
ما هو الأمر git stash
؟
قبل أن نتحدث عن git stash pop
، دعونا أولاً نفهم ما هو git stash
. يستخدم هذا الأمر عندما تكون تعمل على تغييرات في مشروعك البرمجي، ولكنك بحاجة إلى التبديل إلى فرع آخر أو تنفيذ عملية معينة دون الالتزام (commit) بهذه التغييرات. يقوم الأمر git stash
بحفظ تغييراتك الحالية (المعدلة والجديدة) في منطقة خاصة تُعرف باسم stash، ثم يعيد شجرة العمل إلى حالتها الأخيرة النظيفة.
على سبيل المثال:
$ git stash
Saved working directory and index state WIP on main: 123abc Fix some bugs
بعد تنفيذ الأمر، يتم حفظ التغييرات، ويمكنك العمل على الفرع أو المهمة الجديدة بدون فقدان تعديلاتك.
ما الذي يفعله الأمر git stash pop
؟
الآن بعد أن تعرفنا على git stash
، يمكننا التعمق في git stash pop
. ببساطة، يقوم هذا الأمر باستعادة أحدث التغييرات المخزنة في stash إلى شجرة العمل (working directory) الخاصة بك، مع حذف هذه التغييرات من قائمة stash بعد استعادتها. هذا يعني أنك إذا كنت قد خزنت تغييرات باستخدام git stash
، يمكنك استخدام git stash pop
لإعادة تطبيقها على مشروعك.
الفرق بين git stash pop
وgit stash apply
قد تتساءل: ما الفرق بين git stash pop
وgit stash apply
؟ الجواب بسيط:
git stash apply
: يعيد تطبيق التغييرات من stash إلى شجرة العمل ولكن يحتفظ بنسخة من هذه التغييرات في قائمة stash.git stash pop
: يعيد تطبيق التغييرات، ولكنه يحذف النسخة من stash بعد استعادتها.
كيفية استخدام git stash pop
لاستخدام الأمر git stash pop
، يمكنك ببساطة كتابة:
$ git stash pop
سيؤدي هذا الأمر إلى استعادة أحدث مجموعة من التغييرات المخزنة. إذا كنت ترغب في استعادة تغييرات معينة من قائمة stash، يمكنك تحديدها باستخدام index:
$ git stash list
stash@{0}: WIP on main: 123abc Fix some bugs
stash@{1}: WIP on feature-branch: 456def Add new feature
$ git stash pop stash@{1}
في المثال أعلاه، يتم استعادة التغييرات المحفوظة في stash@{1}
.
أمثلة عملية على git stash pop
لنفترض أنك تعمل على مشروع وتُجري تعديلات على ملفات متعددة. فجأة، تحتاج إلى التبديل إلى فرع آخر لإصلاح خطأ طارئ. بدلاً من الالتزام بتعديلاتك غير المكتملة، يمكنك استخدام git stash
لحفظ التغييرات، ثم العودة إليها لاحقًا باستخدام git stash pop
.
الخطوات:
- قم بإجراء بعض التغييرات على الملفات.
- نفّذ الأمر
git stash
لحفظ التغييرات:
$ git stash
Saved working directory and index state WIP on main: 789ghi Update styles
- انتقل إلى الفرع الآخر وقم بإصلاح المشكلة.
- عد إلى الفرع الأصلي، ثم نفّذ الأمر
git stash pop
لاستعادة التغييرات:
$ git stash pop
On branch main
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: styles.css
Dropped refs/stash@{0} (123abc)
تم استعادة التغييرات المحفوظة وتم حذفها من قائمة stash.
التعامل مع تعارضات الدمج (Merge Conflicts)
في بعض الحالات، قد يؤدي الأمر git stash pop
إلى تعارضات دمج إذا كانت هناك تغييرات في الملفات نفسها التي تحاول استعادتها. في هذه الحالة، سيعرض Git رسالة تشير إلى وجود تعارضات، وستحتاج إلى حلها يدويًا.
$ git stash pop
Auto-merging styles.css
CONFLICT (content): Merge conflict in styles.css
لحل التعارضات، قم بفتح الملفات المتأثرة، وحدد أي التغييرات التي تريد الاحتفاظ بها، ثم نفّذ الأمر git add
لحل التعارض. بعد ذلك، يمكنك إكمال العملية كالمعتاد.
أهمية git stash pop
في سير العمل
يوفر git stash pop
مرونة كبيرة للمطورين أثناء العمل على المشاريع البرمجية. فهو يسمح لهم بالتبديل بين الفروع أو المهام بسهولة دون فقدان التغييرات غير المكتملة. كما أنه يساعد في الحفاظ على شجرة العمل نظيفة ومنظمة.
نصائح وتحذيرات
- تأكد دائمًا من أنك تعمل على الفرع الصحيح قبل تنفيذ
git stash pop
. - استخدم
git stash list
لفحص قائمة stash الخاصة بك وتحديد التغييرات التي تريد استعادتها. - كن حذرًا عند التعامل مع التعارضات التي قد تنشأ أثناء استعادة التغييرات.
الخلاصة
الأمر git stash pop
هو أداة قوية ومهمة جدًا في صندوق أدوات أي مطور يستخدم Git. يتيح لك استعادة التغييرات غير المكتملة بسهولة، مع ضمان الحفاظ على شجرة العمل نظيفة. سواء كنت تعمل على مشروع صغير أو تطبيق معقد، فإن معرفة كيفية استخدام git stash pop
يمكن أن تساعدك على تحسين سير عملك وزيادة إنتاجيتك.