O'Reilly logo

Version Control with Git by Jon Loeliger

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Rebasing Commits

The git rebase command is used to alter where a sequence of commits is based. This command requires at least the name of the other branch onto which your commits will be relocated. By default, the commits from the current branch that are not already on the other branch are rebased.

A common use for git rebase is to keep a series of commits that you are developing up-to-date with respect to another branch, usually a master branch or a tracking branch from another repository.

In Figure 10-12, two branches have been developed. Originally, the topic branch started on the master branch when it was at commit B. In the meantime, it has progressed to commit E.

Before git rebase

Figure 10-12. Before git rebase

You can keep your commit series up-to-date with respect to the master branch by writing the commits so that they are based on commit E rather than B. Since the topic branch needs to be the current branch, you can use either:

$ git checkout topic
$ git rebase master

or:

$ git rebase master topic

After the rebase operation is complete, the new commit graph resembles Figure 10-13.

After git rebase

Figure 10-13. After git rebase

Using the git rebase command in situations like the one shown in Figure 10-12 is often called forward porting. In this example, the topic branch has been forward ported to the master branch. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required