Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to go back to previous version in git

Tags:

git

I have a checkout copy of a remote git repository in my workstation. I have accidentally committed a change in my local and pushed to remote. Now I want to remove the last commit and go back to the previous commit and the same should be pushed to remote.

I am okay if it is a new commit with a commit message. How to do that?

like image 800
Poomalairaj Avatar asked Aug 01 '11 11:08

Poomalairaj


People also ask

How do I revert all changes in git?

There are two Git commands a developer must use in order to discard all local changes in Git, remove all uncommited changes and revert their Git working tree back to the state it was in when the last commit took place. The commands to discard all local changes in Git are: git reset –hard. git clean -fxd.


2 Answers

If nobody has yet cloned your updated remote repo, you can:

git reset --hard HEAD~
git push --force

That will force the local and remote history to discard the latest commit.
(Check first with a git fetch that no new commits had been pushed since your incorrect commit)

If a new history isn't an option, then a git revert is more secure, and will result in a new commit canceling the previous one: you can then push that new commit.

like image 77
VonC Avatar answered Sep 27 '22 02:09

VonC


I'd advise against pushing with --force an alternative history. Anyone who already pulled your changes will have a completely screwed history to deal with when pulling new stuff.

A far safer option is to simply do

git revert HEAD~1 
git push origin master

git revert will record a new commit that cancels all of the effects of the previous one

like image 34
Tigraine Avatar answered Sep 25 '22 02:09

Tigraine