I think micro-commits would make me overthink my commit messages even more. I'd love to keep snapshots of my code in different stages, but without having to put a label on X part of Y feature at Z stage.
I have a `git snap` command that does this. It creates a commit on a machine-specific snapshots branch with a fixed commit message. It doesn't touch the working directory and restores everything else (HEAD and the index) after making the commit.