leanminmachine
Posted on May 21, 2019
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 reflog
— Recovering 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.
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
November 30, 2024