===== Overview ===== How to revert one or more commits, dealing with any possible merge conflicts along the way. ===== SYNOPSIS ===== git revert [--[no-]edit] [-n] [-m parent-number] [-s] [-S[]] ... git revert --continue git revert --quit git revert --abort ===== DESCRIPTION ===== Note carefully //lack of traversal//: ... Commits to revert. For a more complete list of ways to spell commit names, see gitrevisions(7). Sets of commits can also be given but no traversal is done by default, see git-rev-list(1) and its --no-walk option. ===== The variations ===== ==== Reverting a single commit ==== How: $ git revert 2965b41 which throws you into a commit edit session based on the earlier commit message: Revert "HTTP->HTTPS" This reverts commit 2965b41fd84a1a76f56984ecdf6c123d1992730f. ... snip ... The default is ''%%--%%edit'' if done from a terminal; you can override with ''%%--%%no-edit''. ==== Reverting a range of commits ==== Revert commits individually (revert ''v1.0'' (not included) up to and //including// ''v1.1''): $ git revert v1.0..v1.1 Revert commits in one operation but do not commit so you can tweak further: $ git revert -n v1.0..v1.1 ==== Reverting one file ==== $ git diff HEAD HEAD^ -- | git apply -