هوتن همتی
هوتن همتی
خواندن ۲ دقیقه·۲ سال پیش

بازگرداندن Stash از دست رفته!

git stash
git stash

در این مقاله میخوایم باهم یاد بگیریم که چطور Git Stash از دست رفته خودمون رو دوباره بازگردانیم.

شاید براتون اتفاق افتاده باشه که یک موقعی به اشتباه کلیک Git Stash Drop و یا کامند اون رو به اشتباه زده باشید، مثل اتفاقی که چند روز پیش برای من افتاد. من داشتم قسمت Google Recaptcha سایت رو توسعه میدادم که بعد از اون وارد یک جلسه شدم و مجبور شدم که این تغییرات رو Stash کنم چون میخواستم تغییرات دیگری را در اون جلسه اعمال کنم.

گیت  stash
گیت stash

بعد جلسه به جای این که apply کنم stash خودم رو اومدم drop زدم و گفتم من دیگه باید بشینم به در نگاه کنم و دوباره باید بشینم اون همه کد رو بزنم، تا بعد چند دقیقه رسید به ذهنم که مگه میشه Git این رو هندل نکرده باشه؟ حتما هندل کرده این موضوع رو، خلاصه سرتون رو درد نیارم که راه حل رو پیدا کردم!

به دنبال سرنخ

ما هر کاری که در گیت میکنیم یک hash code ایجاد میشه، مثل commit,stash,stage و ... . از اونجایی که ما میخوایم stash گم شده خودمون رو پیدا کنیم کافی هست که بریم کد hash اون رو پیدا کنیم و اون رو تحویل Git بدیم و بعد کار تموم هست.

تلاش برای زنده کردن Stash

برای این کار هم ما از دستورات Command Line استفاده میکنیم.

برای کسانی که Linux و Mac OS دارن میتونن از دستور زیر استفاده کنن :

git fsck --no-reflog | awk '/dangling commit/ {print $3}'

برای کسانی که Windows دارن میتونن از دستور زیر استفاده کنن در محیط PowerShell (حواستون باشه کل دستور زیر یک command هست) :

git fsck --no-reflog | select-string 'dangling commit' | foreach { $_.ToString().Split(&quot &quot)[2] }

کد طلایی!

بعد از این که دستور بالا را وارد کنید میتونید hash آخرین عملیات خودتون رو پیدا کنید که مربوط به stash شما میشه . با کد طلایی زیر stash خودتون رو برگردونید (به جای stash_hash، هش خودتون رو جایگذاری کنید)

git stash apply $stash_hash

رفرنس مطلب من : recovery - How to recover a dropped stash in Git? | 2022 Code-teacher (thecodeteacher.com)

stashgitcs internshipcsharpgithub
شاید از این پست‌ها خوشتان بیاید