A typical merge will take the changes applied to that branch since the last merge and apply them to the affected branch. A rebase on the other hand will take the commits created on the branch, remove them, and then apply them after all the commits on the branch you are rebasing on.
These are my experiences with rebasing
- The git history is cleaner
- Less conflicts
- The history of branches outside of master or what ever the default is isn't maintained as well.