|  | git-revert(1) | 
|  | ============= | 
|  |  | 
|  | NAME | 
|  | ---- | 
|  | git-revert - Revert some existing commits | 
|  |  | 
|  | SYNOPSIS | 
|  | -------- | 
|  | [verse] | 
|  | 'git revert' [--[no-]edit] [-n] [-m parent-number] [-s] [-S[<keyid>]] <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[<keyid>]:: | 
|  | --gpg-sign[=<keyid>]:: | 
|  | GPG-sign commits. The `keyid` argument is optional and | 
|  | defaults to the committer identity; if specified, it must be | 
|  | stuck to the option without a space. | 
|  |  | 
|  | -s:: | 
|  | --signoff:: | 
|  | Add Signed-off-by line at the end of the commit message. | 
|  | See the signoff option in linkgit:git-commit[1] for more information. | 
|  |  | 
|  | --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 |