User Tools

Site Tools



How to revert one or more commits, dealing with any possible merge conflicts along the way.


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


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


$ 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^ -- <filename> | git apply -
git_revert.txt · Last modified: 2019/03/13 12:49 by rpjday