I disagree on making `git commit -a` the default behavior for commits in git. It discourages making nice, atomic commits.
Obviously, it trips beginners up.
And it encourages committing stuff that may never have coexisted in the working tree - and thus have never been tested together.