git-revert - Revert an existing commit
git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>
Given one existing commit, revert the change the patch introduces, and
record a new commit that records it. This requires your working tree to
be clean (no modifications from the HEAD commit).
Note: git revert is used to record a new commit to reverse the effect
of an earlier commit (often a faulty one). If you want to throw away
all uncommitted changes in your working directory, you should see git-
reset(1), particularly the --hard option. If you want to extract
specific files as they were in another commit, you should see git-
checkout(1), specifically the git checkout <commit> -- <filename>
syntax. Take care with these alternatives as both will discard
uncommitted changes in your working directory.
Commit to revert. For a more complete list of ways to spell commit
names, see "SPECIFYING REVISIONS" section in git-rev-parse(1).
With this option, git revert will let you edit the commit message
prior to committing the revert. This is the default if you run the
command from a terminal.
-m parent-number, --mainline parent-number
Usually you cannot revert a merge because you do not know which
side of the merge should be considered the mainline. This option
specifies the parent number (starting from 1) of the mainline and
allows revert to reverse the change relative to the specified
Reverting a merge commit declares that you will never want the tree
changes brought in by the merge. As a result, later merges will
only bring in tree changes introduced by commits that are not
ancestors of the previously reverted merge. This may or may not be
what you want.
See the revert-a-faulty-merge How-To for more details.
With this option, git revert will not start the commit message
Usually the command automatically creates a commit with a commit
log message stating which commit was reverted. This flag applies
the change necessary to revert the named commit to your working
tree and the index, but does not make the commit. In addition, when
this option is used, your index does not have to match the HEAD
commit. The revert is done against the beginning state of your
This is useful when reverting more than one commits' effect to your
index in a row.
Add Signed-off-by line at the end of the commit message.
Written by Junio C Hamano <firstname.lastname@example.org>
Documentation by Junio C Hamano and the git-list
Part of the git(1) suite
1. revert-a-faulty-merge How-To