Git Checkout - Switching Back to Head
I've Been Doing My Project While at Some Point I Discovered That One Thing Stopped Working. I Needed to Look up the State of My Code When It Was Working...
I've been doing my project while at some point I discovered that one thing stopped working. I needed to look up the state of my code when it was working correctly, so I've decided to use git checkout (because I wanted to check-something-out). And so I've done
git checkout SHA
couple times while going back to point from which I can't go to HEAD, the output is following:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
I am pretty much sure I have NOT changed anything. The command
git checkout master
gives the same output.
Is there a way to go back to HEAD?
What is the safe way of "jumping over" history commits?
1 Answer
You can stash (save the changes in temporary box) then, back to master branch HEAD.
$ git add .
$ git stash
$ git checkout master
Jump Over Commits Back and Forth:
Go to a specific
commit-sha.$ git checkout <commit-sha>If you have uncommitted changes here then, you can checkout to a new branch | Add | Commit | Push the current branch to the remote.
# checkout a new branch, add, commit, push $ git checkout -b <branch-name> $ git add . $ git commit -m 'Commit message' $ git push origin HEAD # push the current branch to remote $ git checkout master # back to master branch nowIf you have changes in the specific commit and don't want to keep the changes, you can do
stashorresetthen checkout tomaster(or, any other branch).# stash $ git add -A $ git stash $ git checkout master # reset $ git reset --hard HEAD $ git checkout masterAfter checking out a specific commit if you have no uncommitted change(s) then, just back to
masterorotherbranch.$ git status # see the changes $ git checkout master # or, shortcut $ git checkout - # back to the previous state