I recently found out about git add‘s interactive mode.
Yes, it allows you to add/revert files in/out of the index without typing the filenames … but, more importantly, it allows you to add only certain lines of a file rather than the whole thing.
Just watch GitCast #3 (4:24) and see how useful it can be.
This is the kind of stuff I used to do manually at commit time. Developing a feature is not always a linear process, but I still want my commits to be cohesive (an idea developed in the atomic coding screencast).
Ending up with messy commits is easy. This is especially true for my config files: I usually make changes and give them a few days before committing them. If I make other changes in the config files (while I’m hanging around there anyway), the result is a bunch of unrelated config changes.