I develop in master sometimes, but only check in small edits that are pushed immediately.
If my edits grow to the point that I need to write tests or push to staging, I just checkout a feature branch before committing.
If my edits grow to the point that I need to write tests or push to staging, I just checkout a feature branch before committing.