|  | 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 | --skip | --abort | --quit) | 
|  |  | 
|  | 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-restore[1], specifically the `--source` | 
|  | option. Take care with these alternatives as | 
|  | both will discard uncommitted changes in your working directory. | 
|  |  | 
|  | See "Reset, restore and revert" in linkgit:git[1] for the differences | 
|  | between the three commands. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | --cleanup=<mode>:: | 
|  | This option determines how the commit message will be cleaned up before | 
|  | being passed on to the commit machinery. See linkgit:git-commit[1] for more | 
|  | details. In particular, if the '<mode>' is given a value of `scissors`, | 
|  | scissors will be appended to `MERGE_MSG` before being passed on in the case | 
|  | of a conflict. | 
|  |  | 
|  | -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>]:: | 
|  | --no-gpg-sign:: | 
|  | 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. `--no-gpg-sign` is useful to | 
|  | countermand both `commit.gpgSign` configuration variable, and | 
|  | earlier `--gpg-sign`. | 
|  |  | 
|  | -s:: | 
|  | --signoff:: | 
|  | Add a `Signed-off-by` trailer 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. | 
|  |  | 
|  | include::rerere-options.adoc[] | 
|  |  | 
|  | --reference:: | 
|  | Instead of starting the body of the log message with "This | 
|  | reverts <full-object-name-of-the-commit-being-reverted>.", | 
|  | refer to the commit using "--pretty=reference" format | 
|  | (cf. linkgit:git-log[1]).  The `revert.reference` | 
|  | configuration variable can be used to enable this option by | 
|  | default. | 
|  |  | 
|  |  | 
|  | SEQUENCER SUBCOMMANDS | 
|  | --------------------- | 
|  | include::sequencer.adoc[] | 
|  |  | 
|  | 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. | 
|  |  | 
|  | DISCUSSION | 
|  | ---------- | 
|  |  | 
|  | While git creates a basic commit message automatically, it is | 
|  | _strongly_ recommended to explain why the original commit is being | 
|  | reverted. | 
|  | In addition, repeatedly reverting reverts will result in increasingly | 
|  | unwieldy subject lines, for example 'Reapply "Reapply "<original-subject>""'. | 
|  | Please consider rewording these to be shorter and more unique. | 
|  |  | 
|  | CONFIGURATION | 
|  | ------------- | 
|  |  | 
|  | include::includes/cmd-config-section-all.adoc[] | 
|  |  | 
|  | include::config/revert.adoc[] | 
|  |  | 
|  | SEE ALSO | 
|  | -------- | 
|  | linkgit:git-cherry-pick[1] | 
|  |  | 
|  | GIT | 
|  | --- | 
|  | Part of the linkgit:git[1] suite |