The mighty `git-reflog` or how to undo a git rebase
Generally, whenever I have to undo a rebase I just reset my working directory to the origin remote and that works pretty well.
This one time I didn’t push my changes to the remote and did a rebase. Only then I realized i didn’t really want to rebase. Tough life right? I couldn’t even reset to origin now.
That is when I learned about the git reflog
command/feature. git reflog
is quite similar to git log
but instead of logging commits, it logs changes to the HEAD. Whenever a reference to the head changes, it logs it and allows us to go back in time and undo things we should’ve rathar not done.
So, for future reference, I can always git reflog
and then git rebase --hard HEAD@{n}
to the n-th head.
Moral of the story, push before you rebase — अभिनाश
Thank you stackoverflow and git docs