logo

جيت ستاش

في بعض الأحيان تريد تبديل الفروع، لكنك تعمل على جزء غير مكتمل من مشروعك الحالي. أنت لا ترغب في الالتزام بعمل نصف مكتمل. يتيح لك تخزين Git القيام بذلك. ال أمر جيت خبأ يمكّنك من تبديل الفروع دون الالتزام بالفرع الحالي.

يوضح الشكل أدناه خصائص ودور التخزين فيما يتعلق بالمستودع ودليل العمل.

جيت ستاش

بشكل عام، معنى المخبأ هو ' تخزين شيء ما بشكل آمن في مكان مخفي .' المعنى في Git هو نفسه أيضًا بالنسبة للمخبأ؛ يقوم Git بحفظ بياناتك مؤقتًا بأمان دون الالتزام.

يأخذ التخزين الحالة الفوضوية لدليل العمل الخاص بك، ويحفظه مؤقتًا لاستخدامه مرة أخرى. تتوفر العديد من الخيارات مع git stash. بعض الخيارات المفيدة مذكورة أدناه:

    جيت خبأ جيت خبأ حفظ قائمة مخبأة جيت تطبيق جيت خبأ تغييرات خبأ جيت جيت خبأ البوب جيت خبأ قطرة جيت مخبأ واضح جيت فرع خبأ

خبأ العمل

دعونا نفهم ذلك مع سيناريو في الوقت الحقيقي. لقد قمت بإجراء تغييرات على مشروعي GitExample2 في ملفين من فرعين متميزين. أنا في حالة فوضوية، ولم أقم بتحرير أي ملف بالكامل حتى الآن. لذلك أريد حفظه مؤقتًا لاستخدامه في المستقبل. يمكننا تخزينه لحفظه كحالته الحالية. للتخزين، دعونا نلقي نظرة على الحالة الحالية للمستودع. للتحقق من الحالة الحالية للمستودع، قم بتشغيل أمر git Status. يتم استخدام أمر git Status على النحو التالي:

قائمة فارغة جافا

بناء الجملة:

 $ git status 

انتاج:

جيت ستاش

من الناتج أعلاه، يمكنك رؤية حالة وجود ملفين لم يتم تعقبهما design.css و ملف جديد.txt متوفر في المستودع. لحفظه مؤقتًا، يمكننا استخدام الأمر git stash. يتم استخدام الأمر git stash على النحو التالي:

بناء الجملة:

 $ git stash 

انتاج:

جيت ستاش

في الإخراج المحدد، يتم حفظ العمل باستخدام أمر git stash. يمكننا التحقق من حالة المستودع.

جيت ستاش

كما ترون، عملي مخبأ في وضعه الحالي. الآن، تم تنظيف الدليل. في هذه المرحلة، يمكنك التبديل بين الفروع والعمل عليها.

Git Stash Save (حفظ Stashes مع الرسالة):

في Git، يمكن إخفاء التغييرات برسالة. لإخفاء التغيير برسالة، قم بتشغيل الأمر أدناه:

بناء الجملة:

 $ git stash save '' 

انتاج:

جيت ستاش

سيتم حفظ المخبأ أعلاه برسالة

قائمة Git Stash (التحقق من المخابئ المخزنة)

للتحقق من المخازن المخزنة، قم بتشغيل الأمر أدناه:

بناء الجملة:

 $ git stash list 

انتاج:

قوائم جافا
جيت ستاش

في الحالة المذكورة أعلاه، قمت بعمل مخبأ واحد، والذي يتم عرضه كـ ' stash@{0}: قيد التنفيذ قيد الاختبار: ملف 0a1a475 CSS '.

إذا كان لدينا أكثر من مخبأ واحد، فسيتم عرض جميع المخابئ على التوالي بمعرف مخبأ مختلف. النظر في الإخراج أدناه:

جيت ستاش

وسوف تظهر جميع المخابئ مع الفهرسة باسم خبأ@{0}: خبأ@{1}: وما إلى ذلك وهلم جرا.

تطبيق جيت خبأ

يمكنك إعادة تطبيق التغييرات التي خزنتها للتو باستخدام الأمر git stash. لتطبيق الالتزام، استخدم الأمر git stash، متبوعًا بخيار التطبيق. يتم استخدامه على النحو التالي:

بناء الجملة:

 $ git stash apply 

انتاج:

جيت ستاش

يستعيد الإخراج أعلاه المخبأ الأخير. الآن، إذا قمت بالتحقق من حالة المستودع، فسوف تظهر التغييرات التي تم إجراؤها على الملف. النظر في ما يلي انتاج:

جيت ستاش

من الناتج أعلاه، يمكنك أن ترى أن المستودع قد تمت استعادته إلى حالته السابقة قبل التخزين. يظهر الإخراج كـ ' التغييرات لم يتم تنظيمها للالتزام .'

في حالة وجود أكثر من مخبأ واحد، يمكنك استخدام الأمر 'git stash Apply' متبوعًا بمعرف فهرس المخبأ لتطبيق الالتزام المحدد. يتم استخدامه على النحو التالي:

بناء الجملة:

 $ git stash apply 

النظر في الإخراج أدناه:

انتاج:

جيت ستاش

إذا لم نقم بتحديد مخبأ، فسيأخذ Git المخبأ الأحدث ويحاول تطبيقه.

تغييرات جيت خبأ

يمكننا تتبع المخابئ وتغييراتها. لرؤية التغييرات في الملف قبل عملية التخزين وبعد عملية التخزين، قم بتشغيل الأمر أدناه:

بناء الجملة:

 $ git stash show 

سيُظهر الأمر أعلاه الملف المخبأ والتغييرات التي تم إجراؤها عليها. النظر في الإخراج أدناه:

انتاج:

جيت ستاش

يوضح الإخراج أعلاه أن هناك ملفين مخبأين، وتم إجراء إدخالين عليهما.

يمكننا تتبع التغييرات التي يتم إجراؤها على الملف بالضبط. لعرض محتوى الملف الذي تم تغييره، قم بتنفيذ الأمر التالي:

بناء الجملة:

 $ git stash show -p 

هنا، -p يرمز إلى المخبأ الجزئي. سيُظهر الأمر المحدد الملفات والمحتوى الذي تم تحريره، خذ بعين الاعتبار الإخراج أدناه:

انتاج:

جيت ستاش

يُظهر الإخراج أعلاه اسم الملف مع المحتوى الذي تم تغييره. إنه يعمل بنفس أمر git diff. ال فرق جيت سيُظهر الأمر أيضًا الإخراج الدقيق.

Git Stash Pop (إعادة تطبيق التغييرات المخبأة)

يسمح Git للمستخدم بإعادة تطبيق الالتزامات السابقة باستخدام أمر git stash pop. يقوم خيار الظهور بإزالة التغييرات من المخزن المؤقت وتطبيقها على ملف العمل الخاص بك.

يشبه الأمر git stash pop تمامًا الأمر git stash Apply. والفرق الرئيسي بين هذين الأمرين هو الأمر stash pop الذي يحذف المخبأ من المكدس بعد تطبيقه.

بناء الجملة:

 $ git stash pop 

سيقوم الأمر أعلاه بإعادة تطبيق الالتزامات السابقة على المستودع. النظر في الإخراج أدناه.

انتاج:

جيت ستاش

جيت خبأ قطرة (Unstash)

ال جيت خبأ قطرة يتم استخدام الأمر لحذف مخبأ من قائمة الانتظار. بشكل عام، يقوم بحذف أحدث الملفات المخزنة. يجب توخي الحذر قبل استخدام أمر stash drop، حيث أنه من الصعب التراجع عنه إذا تم تطبيقه مرة واحدة.

الطريقة الوحيدة للرجوع إليها هي إذا لم تقم بإغلاق الجهاز بعد حذف المخبأ. سيتم استخدام أمر stash drop على النحو التالي:

عدد صحيح للسلسلة في Java

بناء الجملة:

 $ git stash drop 

انتاج:

جيت ستاش

في الإخراج أعلاه، أحدث مخبأ (مخبأ @{0}) تم إسقاطه من ثلاث مخابئ. يسرد أمر stash list جميع المخازن المتوفرة في قائمة الانتظار.

يمكننا أيضًا حذف مخبأ معين من قائمة الانتظار. لحذف مخبأ معين من المخازن المتاحة، قم بتمرير معرف المخبأ في أمر إسقاط المخبأ. سيتم معالجتها على النحو التالي:

بناء الجملة:

 $ git stash drop 

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

 $ git stash drop stash@{1} 

النظر في الإخراج أدناه:

لين السلسلة في جافا
جيت ستاش

في الإخراج أعلاه، الالتزام مخبأ @{1} تم حذفه من قائمة الانتظار.

جيت خبأ واضح

ال جيت مخبأ واضح يسمح الأمر بحذف جميع المخابئ المتاحة مرة واحدة. لحذف كافة المخازن المتاحة، قم بتشغيل الأمر أدناه:

بناء الجملة:

 $ git stash clear 

سيؤدي إلى حذف جميع المخابئ الموجودة في المستودع.

انتاج:

جيت ستاش

يتم حذف كافة المخابئ في الإخراج أعلاه. أمر git stash list فارغ لأنه لا توجد مخابئ متوفرة في المستودع.

فرع جيت ستاش

إذا قمت بإخفاء بعض الأعمال في فرع معين وواصلت العمل في هذا الفرع. ثم قد يؤدي ذلك إلى إنشاء تعارض أثناء الدمج. لذلك، من الجيد تخزين العمل في فرع منفصل.

يسمح أمر git stash Branch للمستخدم بتخزين العمل في فرع منفصل لتجنب التعارضات. بناء الجملة لهذا الفرع كما يلي:

بناء الجملة:

 $ git stash branch 

سيقوم الأمر أعلاه بإنشاء فرع جديد ونقل العمل المخبأ عليه. النظر في الإخراج أدناه:

انتاج:

جيت ستاش

في الإخراج أعلاه، يتم نقل العمل المخبأ إلى اختبار فرعي تم إنشاؤه حديثًا. سوف يتجنب تعارض الدمج في الفرع الرئيسي.