Small commits (without squashing) makes for a more effective 'git bisect', should you ever need to trace a bug down to a single commit. Note that every commit should pass the project's test suite. There's nothing sweeter than tracing a regression down to a single line of code using git bisect!