Table of Contents

What is rebasing?

Rebasing is establishing a new base for a series of commits.

In the example below, the branch feature deviated at commit B, while the master branch moved along in parallel.

A-B-C-D-E    master
   \
    X-Y-Z    feature

You can rebase with the rebase command. For example, to rebase the feature branch on master:

$ git checkout feature
$ git rebase master

Rebasing essentially rewinds the commits on a branch, brings the branch up to date with the rebase target, and then replays the rewound commits over it, leaving the timeline looking like this.

A-B-C-D-E        master
         \
          X'-Y'-Z'  feature

Warning this changes history, see also What does changing history mean?

Fork me on GitHub