Search code examples
gitgit-stashgit-reset

Undo git reset --hard after git stash pop


I had some changes in the stash that I attempted to recover using git stash pop. There were some merge conflicts, and rather than resolving them, I decided to just reset it. Unfortunately, in a moment of stupidity, I did a git reset --hard, and now all of the previously stashed changes are gone.

Is there any way to recover these changes? I've tried git fsck --cache --no-reflogs --lost-found --unreachable HEAD, but none of the commit hashes listed refer to the changes I need. What else can I do? or did I just lose all of that work?


Solution

  • Just after posting this, I thought to check .git/refs/stash, which I thought would be blank after the pop. However, likely due to the merge conflict, it still had the hash from the stash I had tried to pop!

    I did a git stash apply with the hash and a git reset to resolve the merge conflicts the lazy way.

    Sorry if this was a git-noob question and answer. Hopefully this helps someone else.