git-revert(1)
=============

NAME
----
git-revert - Revert some existing commits

SYNOPSIS
--------
[verse]
'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] <commit>...
'git revert' --continue
'git revert' --quit
'git revert' --abort

DESCRIPTION
-----------

Given one or more existing commits, revert the changes that the
related patches introduce, and record some new commits that record
them.  This requires your working tree to be clean (no modifications
from the HEAD commit).

Note: 'git revert' is used to record some new commits to reverse the
effect of some earlier commits (often only a faulty one).  If you want to
throw away all uncommitted changes in your working directory, you
should see linkgit:git-reset[1], particularly the '--hard' option.  If
you want to extract specific files as they were in another commit, you
should see linkgit: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.

OPTIONS
-------
<commit>...::
	Commits to revert.
	For a more complete list of ways to spell commit names, see
	linkgit:gitrevisions[7].
	Sets of commits can also be given but no traversal is done by
	default, see linkgit:git-rev-list[1] and its '--no-walk'
	option.

-e::
--edit::
	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 parent.
+
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 link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] for
more details.

--no-edit::
	With this option, 'git revert' will not start the commit
	message editor.

-n::
--no-commit::
	Usually the command automatically creates some commits with
	commit log messages stating which commits were
	reverted.  This flag applies the changes necessary
	to revert the named commits to your working tree
	and the index, but does not make the commits.  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 index.
+
This is useful when reverting more than one commits'
effect to your index in a row.

-s::
--signoff::
	Add Signed-off-by line at the end of the commit message.

--strategy=<strategy>::
	Use the given merge strategy.  Should only be used once.
	See the MERGE STRATEGIES section in linkgit:git-merge[1]
	for details.

-X<option>::
--strategy-option=<option>::
	Pass the merge strategy-specific option through to the
	merge strategy.  See linkgit:git-merge[1] for details.

SEQUENCER SUBCOMMANDS
---------------------
include::sequencer.txt[]

EXAMPLES
--------
`git revert HEAD~3`::

	Revert the changes specified by the fourth last commit in HEAD
	and create a new commit with the reverted changes.

`git revert -n master~5..master~2`::

	Revert the changes done by commits from the fifth last commit
	in master (included) to the third last commit in master
	(included), but do not create any commit with the reverted
	changes. The revert only modifies the working tree and the
	index.

SEE ALSO
--------
linkgit:git-cherry-pick[1]

GIT
---
Part of the linkgit:git[1] suite
