Git Merge vs Git Rebase

TLDR

Both and are used to synchronise changes between branches. The difference is will revise the commits but keep a clean organised history, while will keep all the original commits and add ones automatically but gives out a circuit board like history.

Real world scenarios