This post probably should be required reading for people moving from Subversion, since Subversion repositories almost never have clean history. I define "clean" as a history with all changes isolated by self-contained commits, and no "oops I forgot this one file" junk.
My "unclean" peeve is when people prepare a git patch series with a separate commit for each file. If I can't apply the first M patches of your N patch series and have a usable tree, then you're doing it wrong.