Lets say I have a new feature so I make a new branch. This branch is a side project that will last for a long time, so I end up merging the master back into it to keep it up to date. That has happened 50 times as I keep it up to date and chip away at the feature, and a number of them wont have any development between two merges from master. My problem comes at merge and push time as my remote ends up with some noisy and ugly merges clogging up the history. Another example can be merging into your development branch each day to keep up to date on a project but not actively developing anything, but once you do your merges flood the history.
I think this a simple example but it can involve many more branches and merges. Is there a common procedure for this to keep things less noisy and ugly when reading the commits?