I deleted the stash while applying. And then by mistake reverted everything. How can I get it back? Please help.
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 <sha>
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..
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 :
search and select the commit you want and do below
git stash apply dec98ac9eb98abf94f43beecdf07f9c17e678ce1;.
Thank you for this so much!
thanks
Thanks a lot for this. Saved my day.
Thank you!
Thanks you for this! It saved my life!
♡^▽^♡
It looks like you're new here. Sign in or register to get started.