تعریف و کاربرد git stash‌

تعریف و کاربرد git stash‌

ما از git stash برای ذخیره سازی تغییرات در زمان هایی که هنوز آماده commit‌ نیستند و در همان لحظه نیاز داریم روی branch‌ دیگیری تغییر ایجاد کنیم استفاده می کنیم.

برای مثال شما در حال کار روی یک feature‌ هستید و تغییراتی دارید که هنوز آماده commit نیستند و در همین لحظه یک باگ فوری برای شما میاد که باید اون را برطرف و commit کنید. 

در این حالت شما نیاز به این دارید که تغییرات فعلی رو در جایی ذخیره کنید و به branch جدید switch کنید. این جاست که git stash به کمک شما میاد.

Stash کردن تغییرات

git stash save
# or
git stash
# or with a message
git stash save "this is a message to display on the list"

اعمال stash به منظور کار کردن روی آن

git stash apply
# or apply a specific one from out stack
git stash apply [email protected]{3}

مشاهده لیست stash ها

هر بار که یک stash را ذخیره می کنیم، به صورت stack ذخیره می شود با استفاده از دستور list میتونیم همه stash ها رو ببینیم.

git stash list
# or for more information (log methods)
git stash list --stat

برای پاک کردن stack می تونیم دستی اونها رو پاک کنیم.

# drop top stash
git stash drop
# or
git stash drop <name>
# to clear all history we can use
git stash clear

اعمال و حذف روی یک command

git stash pop

* اگر ما با conflict هایی مواجه شویم، تغییرات خود را reset یا commit  میکنیم

* conflict ها از طریق pop موجب حذف stash های بعدی نمی شوند

مثال از مراحل Git Stash

۱- یک فایل رو ویرایش کنید

۲- فایل رو stage کنید

۳- stach فراخوانی کنید

۴- لیست stash رو ملاحظه کنید

۵- با git status مطمئن بشید که هیچ تغییری بلاتکلیف ندارید

۶- git pop کنید

۷- لیست stash رو ببینید تا از تغییرات مطمئن بشید

# Modify edit_this_file.rb file
git add .

git stash save "Saving changes from edit this file"

git stash list
git status

git stash pop
git stash list
git status

منبع: https://docs.gitlab.com/ee/topics/git/stash.html