|  | git-revert(1) | 
|  | ============= | 
|  |  | 
|  | NAME | 
|  | ---- | 
|  | git-revert - Revert an existing commit | 
|  |  | 
|  | SYNOPSIS | 
|  | -------- | 
|  | 'git revert' [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit> | 
|  |  | 
|  | DESCRIPTION | 
|  | ----------- | 
|  | 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 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>:: | 
|  | Commit to revert. | 
|  | For a more complete list of ways to spell commit names, see | 
|  | "SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1]. | 
|  |  | 
|  | -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.txt[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 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 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. | 
|  |  | 
|  |  | 
|  | Author | 
|  | ------ | 
|  | Written by Junio C Hamano <gitster@pobox.com> | 
|  |  | 
|  | Documentation | 
|  | -------------- | 
|  | Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. | 
|  |  | 
|  | GIT | 
|  | --- | 
|  | Part of the linkgit:git[1] suite |