Git: Revert to previous commit status
But when I do “git checkout “, I don’t get said commit. Nothing changes.
It tells me I’m in detached HEAD mode, but the files I want are not there.
- Remove a Git commit with no parent
- GitHub revert or reset?
- How to completely discard changes made on a topic branch
- Keep changes in a specific file when reverting to previous commit
- How to cleanly reset local git repository with no remnants left
- Git branch reset
What the eff am I doing wrong?
2 Solutions collect form web for “Git: Revert to previous commit status”
git reset --hard <commit> From the manpage:
Matches the working tree and index to that of the tree being switched to. Any changes to tracked files in the working tree since are lost.
git checkout is for switching your working directory to a different branch or commit. This does not move the
DO NOT git reset -hard it is PERMANENT!
git stash -u
instead! If you have a piece of work in there that you zapped by accident, you can still get it back. This never gets pushed to your remote unless you choose to do so by making a branch out of it and pushing it up.
Also, you are on the right track that you can use
git checkout to accomplish the same thing. The syntax is
git checkout HEAD -- .
But it has the same problem as
git reset --hard. Stick with stash and you will save losing your hair in the future.
The above solutions revert all your changes. However, you asked how to get rid of some of the changes. I’ll add this for completeness.
To do this, you can
git add file1 file2 file3 git stash save --patch
You will now be prompted for what exactly you want to make dissappear… down to what ever level of granularity. So you can safely “reject” only a few changes to a single file if you choose to do so.