The reflog won't help you recover things in the staging area that where accidentally `reset --hard` though … (you can still get the ones you added to the index with `git add` but not committed[1], but changes that weren't added are lost for good)
I love git, but the UX is still terrible …
[1]: https://stackoverflow.com/questions/7374069/undo-git-reset-h...