man pages section 1: User Commands

Exit Print View

Updated: July 2014

git-revert (1)


git-revert - Revert some existing commits


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


Git Manual                                          GIT-REVERT(1)

     git-revert - Revert some existing commits

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

     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 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.

         Commits to revert. For a more complete list of ways to
         spell commit names, see gitrevisions(5). Sets of commits
         can also be given but no traversal is done by default,
         see 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.

Git          Last change: 02/22/2012                    1

Git Manual                                          GIT-REVERT(1)

         See the revert-a-faulty-merge How-To[1] for more

         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.

         Use the given merge strategy. Should only be used once.
         See the MERGE STRATEGIES section in git-merge(1) for

     -X<option>, --strategy-option=<option>
         Pass the merge strategy-specific option through to the
         merge strategy. See git-merge(1) for details.

         Continue the operation in progress using the information
         in .git/sequencer. Can be used to continue after
         resolving conflicts in a failed cherry-pick or revert.

         Forget about the current operation in progress. Can be
         used to clear the sequencer state after a failed
         cherry-pick or revert.

         Cancel the operation and return to the pre-sequence

     git revert HEAD~3
         Revert the changes specified by the fourth last commit
         in HEAD and create a new commit with the reverted

Git          Last change: 02/22/2012                    2

Git Manual                                          GIT-REVERT(1)

     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 attributes(5) for descriptions of the following

     |Availability   | developer/versioning/git |
     |Stability      | Uncommitted              |

     Part of the git(1) suite

      1. revert-a-faulty-merge How-To

     This software was built from source available at  The original
     community source was downloaded from  http://git-

     Further information about this software can be found on the
     open source community website at

Git          Last change: 02/22/2012                    3