Git Merge and Rebase
Merge is a very straight forward method to join branches.
merge command is issued, git will compare current branch with the target branch and aggregate commits that are different from the diverge point, here is
[3 4 5].
Then git will place the the aggregated commit
 on top of the
master. Also, conflicts is also placed in this commit.
As you can see, this method retains branch structure so reverting to old branch structure is possible.
Rebase does not retain branch structure.
The different commits will be replayed on top of the
master branch, as if you commit them on
master at the first place.
Commits will be replayed one by one. Conflict needs to be resolved on each commit.
As you can see, the branch structure is aligned as a straight line. So revertng directly to old branch structure is not easy.