Too Long; Didn't Read
The main reason is that your new functionality can break another people code and vice-versa, but if you always commit small changes, it will be easier to track and fix, so you avoid a lot of time-wasting by tracking down dozens or hundreds of lines changed in a single commit. Always commit with frequency, finished a function? Commit it, improved style of a single div? commit and so on. Always commit. Clean your history in interactive mode (igit) Clean your commit history in the interactive mode of Git.