While doing a "git reset" with a "--hard" flag in any branch it will reset the index and working tree which means not only our index is discarded but also along with contents in our working file. Simply, any changes to tracked files in the working tree since are discarded.
Now, how do we get back to our last commit. A simple way is there.
So, whenever git does something extreme like changing or rewinding branches, it records that in "reflog" a reference log.
Now, check the output of "git reflog", it will tell you all transitions our branch ever had.
We can then use git show to check and git checkout to get back.
Flow of recovery :
git reflog
<commit_id> (HEAD -> main, origin/main, origin/HEAD) HEAD@{0}: commit: <message>
<commit_id> HEAD@{1}: commit: <message>
<commit_id> HEAD@{2}: commit: <message>
git show <commit_id>
git checkout <commit_id>
Visit My Personal Blog @ danyson.github.io
Support Us on Buy Me a Coffee
Top comments (1)
Hi @danyson
Also we could do "git reset --hard " with the removed the commit id, which could recover the commit.
Thanks,
Rajan