Git rebase is an advanced and powerful technique. It is like merge, but it doesn’t create new commits from 2 branches. It grab the diffs from a branch and re-apply those diffs into the other branch.
Rebase allows us to move a tree of snapshots into a new parent snapshot.
After the rebase, the log history looks like a single timeline.