Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to do "hg backout X" in Git?

I have to use Git and want to undo one commit that was some commits before the tip. In Hg it's hg backout. What's the analog command in Git?

(I duckduckwent before posting this and dont's see an analog command.)

like image 484
culebrón Avatar asked Jan 02 '12 16:01

culebrón


3 Answers

To revert some specific commits you can use:

git revert <commit_hash>

This will add a new commit that reverts commit_hash commit.

If you want to erase a specific commit by rewriting history, you can do:

git rebase -i <commit_hash>^

This will open an editor. Just delete the line that contains the commit_hash you want to erase, save the file and quit the editor. The rebase will erase the commit_hash commit.

like image 153
ouah Avatar answered Nov 01 '22 13:11

ouah


It sounds like you need git revert :) Alternatively, if you want to remove all evidence that that commit ever happened, you could do a git rebase to get rid of it. But be careful if you've already published that commit somewhere visible as you can create problems for other people.

Here's a link talking about revert:

http://gitready.com/intermediate/2009/03/16/rolling-back-changes-with-revert.html

Alternatively, just Google for the manual documentation.

like image 45
Stuart Golodetz Avatar answered Nov 01 '22 11:11

Stuart Golodetz


There is the official Git and Hg equivalent commands maintained here:

https://www.mercurial-scm.org/wiki/GitConcepts#Command_equivalence_table

And the equivalent for hg backout is git revert

like image 3
manojlds Avatar answered Nov 01 '22 12:11

manojlds