Retrieve a deleted stash

I deleted the stash while applying. And then by mistake reverted everything. How can I get it back? Please help.

3 answers

1 accepted

This widget could not be displayed.

Unless you have a backup somewhere else, this is difficult. However stashes are stored as regular git objects and provided this was done recently then the commit object will still be there and not garbage collected yet, it just won't have any references to it.

You can list all unreachable commits , but you have to drop to the command line (click Terminal on the toolbar). Then type:

git fsck --unreachable

This will show you all the commits which are not reachable by a branch / tag and which haven't been garbage collected yet. Look for the ones that say 'unreachable commit', ignore the blobs. The chances are it will be the one closest the top, unless you've performed some other actions which created more unreachables. You can examine the commits by doing 'git show <sha>', and this should identify the stash, it'll probably be called 'On master: <your comment>' or similar. Once you've found it, copy the SHA.

To recover this you then do:

git stash apply &lt;sha&gt;

Which will bring it back into your working copy.

Going through each commit through the terminal is quite combersome. But atleast there is a solution. Thanks :)

Very helpful. Just used this to help out a co-worker. Thank you! :-)

Worked like a charm.. Thanks a lot saved my 4 hours of work.. :)

You sir, are my hero, thank you!

You make my day sir, thanks a lot

Day saver. Thank you so much.

Thank you!! Almost lost a day of work :) 

How to retrieve :

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git show > dangles.txt

search and select the commit you want and do below
git stash apply dec98ac9eb98abf94f43beecdf07f9c17e678ce1;

God bless u man, Thanks a lot 

Thanks alot :)

Just saved my bacon, thank you.

Madhu I'm New Here Jul 19, 2018

This was a life-saver ! Thanks !

Thank you so much for this answer!
This just saved me from a lot of headache.

It took a while for me to find the right commit, but I found it in the end. :)

This widget could not be displayed.

Brilliant!  This outputs the details to a file so you can search for whatever you may have accidentally nuked. 

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git show > dangles.txt

How to retrieve :

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs git show > dangles.txt

search and select the commit you want and do below
git stash apply dec98ac9eb98abf94f43beecdf07f9c17e678ce1;.



This widget could not be displayed.

Thank you for this so much!

Suggest an answer

Log in or Sign up to answer
Community showcase
Published May 30, 2018 in Sourcetree

Tip from the team: configuring Git or Mercurial in Sourcetree

Supported Platforms macOS Windows To make using Sourcetree as simple yet powerful as possible we embed (bundle) dependencies such as Git, Git LFS, and Mercurial. We strive to keep these...

869 views 2 3
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you