It works, I stage (git add), I refactor, it breaks, I checkout (preserves staged work), refactor again, commit push.
Also a fan of numerous small commits - makes good documentation and elimates wasted time untangling hours of thought.
And when I'm reviewing the last thing I want is for someone to waste time doing me the favor of burying their journey into some "perfect" mega-commit