git reset --hard isn't that hard
Like the experienced git user that I am, I accidentally deleted some of my
code. I did this by running
git reset --hard HEAD^^. I meant to only insert
one circumflex, but that key acts differently on windows than it does on linux.
Sadly I am already way too used to the linux behaviour, which only inserts one
circumflex after hitting the key twice.
After a short search on StackOverflow, I found out, that reset doesn't
actually drop a commit. Instead the branch will just stop tracking that
commit. Meaning that you can still access the commit, as long as you still
have the commit-hash or you can try finding it with
After reading the man-page for
git reset this also makes sense, since all
git reset is doing, is to modify the index and optionally your working
However, this is even more interesting, when you are deleting a branch. A
branch is really nothing more than a chain of tracked commits. So even after
deleting a branch, you can still find the commits in the reflog. And simply
git cherry-pick whatever you need.