If you want to see the history completely same as it happened, you should use merge. Merge preserves history whereas rebase rewrites it.
Rebasing is better to streamline a complex history, you are able to change the commit history by interactive rebase.
You can remove undesired commits, squash two or more commits into one or edit the commit message.
Rebase will present conflicts one commit at a time whereas merge will present them all at once.
It is better and much easier to handle the conflicts but you shouldn’t forget that
reverting a rebase is much more difficult than reverting a merge if there are many conflicts.
You can find details of a basic rebase process from git — Basic Rebase .