47

I've pulled code down from my repo which has messed things up. I'd like to revert my entire project to my last local commit. How would I do this?

3 Answers 3

84

This will reset everything to your current commit (getting rid of all changes, staged or otherwise:

git reset HEAD --hard

This will reset everything to the previous commit (also getting rid of all changes, staged or otherwise)

git reset HEAD^ --hard

the ^ next to HEAD means one commit before HEAD, HEAD being where you are currently. You can go two commits back by using ^^, or three with ^^^. Additionally you can use a tilde to specify the number of commits: ~3 for three commits back.

git reset HEAD~3 --hard

Also keep in mind that the --hard option means that these commands will throw away any changes you have that are not stashed.

Sign up to request clarification or add additional context in comments.

4 Comments

It's always nice to see appropriate safety warnings attached to the suggestion to use git reset --hard, as in this answer - a worrying number of stackoverflow answers don't...
Massive caveat of "If you've done a pull since your local commit this will nuke your local commit" :) see this to undo said ball ache gitready.com/advanced/2009/01/17/restoring-lost-commits.html
@EdBishop Nice thing about Git is that you nearly never actually lose anything
@ChrisRasys indeed, it's saved us a few times :D
18

Locate your last local commit in git log and run git reset --hard <commit sha1>.

It will delete all the local changes you haven't commited, and will move the HEAD to this commit.

Comments

4

git pull can fetch and merge multiple commits. To go back to your previous local state (rather than back n-commits) you can use the reflog. git reset --hard @{1}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.