The other day, I was working on a feature for Real Travel using our current branching strategy in that each release we do is a separate branch. Not sure if it was a cause of lack of sleep from late hours pulled, but I accidentally deleted my local and remote copy of the branch before I merged it back into the master branch for release. After a quick state of shock and thoughts running through my head of losing hours of work, I calmed down and relied on my Git knowledge.
There are two ways to read the commit history in git. The first way shows a list of details commits while the other shows the log in reference to the current HEAD.
Using the reflog command, I was able to find out exactly where the last reference to my deleted branch was. An example output of the reflog might look like this:
Now the reflog will not show exactly where the branch was deleted, but if you remember your last commit to that branch and have a detailed enough message, it should be easy to find and restore.
Restoring your branch is straight forward by checking out the HEAD you want to a new branch.
You can also use the hash too to checkout the new branch.
Simple enough and now I can move on with actually merging the branch in before deletion.