How do I rebase while skipping a particular commit?

Phillip picture Phillip · Sep 26, 2012 · Viewed 22k times · Source

Is there a way to rebase a branch onto another while skipping a particular (conflicting) commit on the other branch?

For example, I want to rebase mybranch onto master, but master contains a commit that will conflict with the commits in master, so I prefer to undo that commit completely.

-o-o-o-o-o-x-o-o-o-o master
     |
     o-o-o-o mybranch

x marks the conflicting commit.

Answer

Sergey K. picture Sergey K. · Sep 26, 2012

Use interactive rebase:

git rebase -i master

An editor will open and you will have a list of commits like this:

pick b8f7c25 Fix 1
pick 273b0bb Fix 2
pick 6aaea1b Fix 3

Just delete the commit you want to skip. It will be omitted while rebasing your branch onto master.

P.S. If you cannot see the editor, please, refer to this question for solution: How can I set up an editor to work with Git on Windows?