I tend to do a lot of work upfront (without committing) and then go back and split the work up into smaller commits with "git add -p". I commit often, so it's never a huge list of changes I have to split.
I do this so I can cherry pick commits into other branches (e.g., fixing a bug in my current branch and merging it back to master).
I do this so I can cherry pick commits into other branches (e.g., fixing a bug in my current branch and merging it back to master).