آرمین حبیبی

آرمین حبیبی

جابه جایی بین برنچ ها در گیت بدون حذف تغییرات جاری

امروز اومدیم ببینیم چطوری میشه بدون حذف تغییراتی که دادیم و یا commit کردن تغییراتی که داریم بین برنچ ها جا به جا بشیم. یک موقع هست که دارید توی برنچ A کار میکنید و بنا به دلایلی چون فیکس کردن باگ در برنچ دیگر ، تغییرات force که لازم هست سریع اتفاق بیوفته و... بخواهید به برنچ B سوییچ کنید. خب حالا اینجا git یک قابلیتی داره به عنوان stash که میتونید تغییراتی که هنوز وقت commit کردن آن نرسیده را در یک محفظه ای در جای امن و مخفی ذخیره کنید. البته دقت کنید این تغییرات در دایرکتوری(Directory) جاری ذخیره میشه نه در برنچ، بنابراین میتونید تو هر برنچ این تغییرات رو برگردونید. توجه کنید توی هر ذخیره کردن، ایندکس گذاری انجام میشه و به عنوان id اون stash شناخته میشه. با کلمه کلیدی به همراه ایندکس: stash@{0} تا اینجا تقریبا فهمیدیم که stash چیه و چطور کار میکنه، حالا بریم وارد فاز عملی بشیم😎. دستورات مهمی که باید بدونیم رو در لیست زیر قرار میدم به همراه توضیح در بخش بعدی. git stash git stash list git stash show git stash pop git stash save git stash apply git stash drop git stash clear git stash: وقتی میخواهید تمام تغییرات جاری رو دخیره کنید از دستور git stash استفاده میکنید. git stash list: میتونید لیست تمام stash هایی که ذخیره کردید رو ببینید. برای اینکه دقیقا اون stash رو ببینید میتونید بعد این دستور، کد اون commit رو وارد کنید. البته لازم نیست کد رو کامل وارد کنید، باید حداقل 4 کاراکتر باشه تا قبول کنه. نکته: درصورتی بهتون کد اون commit رو میده که پیام دستی نداده باشید موقع ذخیره کردن توسط دستور git stash save. git stash show: اگر میخواهید دقیقا ببینید چه فایلی تغییر کرده میتونید از دستور git stash show استفاده کنید. امکان مشاهده بخشی که تغییر کرده هم هست. بعد دستور بالا، u- یا p- بنویسید تا کد تغییر کرده رو ببینید. git stash pop: توی برگردوندن اون تغییرات میتونید از دستور git stash pop استفاده کنید. اگر آیدی stash رو وارد نکنید همیشه آخرین stash رو برمیگردونه. اگه میخواهید یک stash خاص رو برگردونید میتونید بعد دستور بالا آیدی stash رو وارد کنید. git stash save: این دستور فرق زیادی با دستور git stash نداره، فقط با دستور save میتونید موقع ذخیره کردن تغییرات ، پیام دلخواه وارد کنید ، به صورت پیشفرض اگه پیامی ندهید ، کد commit به همراه آخرین پیام commit رو ذخیره میکند. git stash apply: با این دستور هم میتونید تغییرات رو برگردونید ولی با یک تفاوت، اونم اینه تغییراتی که برگشت دادین دیگه از اون محفظه حذف نمیشه و باقی میمونه. درصورتی که تو دستور pop اون تغییرات جایگزین میشن و دیگه محفظه ای وجود نداره از اون stash. git stash drop: با این دستور اولین stash حذف خواهد شد. اگه میخواهید stash خاصی رو حذف کنید میتونید آی دی اون stash رو بعد این دستور وارد کنید. git stash clear: اگه میخواهید تمام stash هارو حذف کنید از دستور git stash clear استفاده کنید. توجه کنید برای اینکه این دستورات به درستی کار کنه و مشکلی پیش نیاد از ویرایشگر(editor )خوده git استفاده کنید به جای terminal یا powershell و... این ها دستورات مهمی بودن که برای کار با stash میبایست یاد میگرفتید و البته دستورات دیگه هم وجود داره که تو این مقاله نمیگنجه توضیح بدم اگه دوست داشتین و براتون جالب شد میتونید درباره اشون تحقیق کنید.​ الان دیگه باید بتونید بین برنچ ها بدون حذف تغییرات جاری جابه جا بشید. بدرود🙌