While preparing a training about Git and it’s infinite list of commands, I discovered http://git-school.github.io/visualizing-git/ . This is a great help to explain some of the Git concepts and visualize the effect of the different commands. Let’s try the tool to demonstrate the concept of a rebase . We start by creating a second branch and adding some commits to both master and the second branch: Now while sitting on the sample branch, we execute the git rebase master command to rebase our current branch(sample) onto master. Thanks to the visualization tool we see that our commits are replayed on the master branch resulting in new commit ids. As a last step, we still have to merge these changes on the master branch. Really nice way to learn Git!