git reflog saved my ass.

leanminmachine

leanminmachine

Posted on May 21, 2019

git reflog saved my ass.

I’m a git noob.

I was panicking as usual because I accidentally committed my changes on to the master branch. We’re supposed to just git checkout and create a new branch, opening a pull request before merging to master.

So i was furiously googling, and this came up:

git reset —soft

git checkout - How to revert a Git repository to a previous commit - Stack Overflow
git reset --soft <commit>

  • Revert back while keeping the changes.
  • Does not change the working tree.
  • Goes back to commit status such as unstage files.

I tried using git reset --soft HEAD^ . I’m still not sure what’s the difference between HEAD^ and HEAD. Apparently:

Use ~ most of the time — to go back a number of generations, usually what you want
Use ^ on merge commits — because they have two or more (immediate) parents

Source: What’s the difference between HEAD^ and HEAD~ in Git? - Stack Overflow

So it worked, my changes got unstaged. But when i switched to a new branch, it seemed to have disappeared?? So i was panicking because usually i use git status and git log to check for modified files, staged / unstaged etc. I was so scared that all my code went missing.

git reflog

Thankfully, after googling, i found this command: git reflogRecovering a git reset —soft - Stack Overflow — which logs out commits that are not in my working tree anymore. Lo and behold, my commits are still there. Phew, all i have to do is to just reset back to that commit and make sure to push it up now.

Kinda weird why git log doesn’t show the commits.

💖 💪 🙅 🚩
leanminmachine
leanminmachine

Posted on May 21, 2019

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related