How do I undo git reset --hard?
reset --hard only moves pointers. Find the pre-reset position in git reflog and reset back to it — nothing is lost if done inside the 30-day prune window.
Do it now:
git reflog
git reset --hard HEAD@{1}
Need more than the one-liner?
This answer covers one scenario out of dozens. The Git Rescue Field Guide collects all 52 recovery situations — resets, rebases, dropped stashes, forced pushes, scrubbed history — each with the exact command and the gotchas that bite afterwards.
More rescues: How do I recover a deleted branch in Git? · How do I recover lost commits after a rebase? · How do I undo a commit I already pushed? · How do I recover a dropped stash? · How do I fix a detached HEAD state in Git? · Can I recover a file I deleted before committing it? · How do I remove a file (or secret) from entire git history? · How do I abort or undo a merge in Git? · How do I find a lost commit when I don't know the hash?