Pointless cached version without the pretty pictures: http://webcache.googleusercontent.com/search?q=cache:ypB2BA-...
git add <file> -p
This lets you pick chunks of code from <file> that you'd like to stage for commit. When I feel I'm done coding for a session, I just run a `git diff` in one window, and in the other one pick chunks that contain changes that belong in one commit.