as far as i know, --hard
will discards uncommitted changes. Since these aren't tracked by git. but you can undo the discarded commit
.
$ git reflog
will lists:
b0d059c HEAD@{0}: reset: moving to HEAD~1
4bac331 HEAD@{1}: commit: added level introduction....
....
where 4bac331
is the discarded commit
.
Now just move the head to that commit::
$ git reset --hard 4bac331