I use interactive rebase and also interactive git add --patch a ton to build a commit history that tells a story. Regular exposure makes it pretty easy to avoid the bad bits. :)

//