The exhortation to do atomic commits is a good one but slightly impractical; for whatever reason, I just don’t often think “I should commit this change” during flow state. I did find a semi-practical way of partially implementing atomic commits anyway: rather than git add all, I git add one file and commit, then repeat. It’s not perfect, you do have to review the diff to check for coupled changes (changing a route on the server and the corresponding call on the client, for example), but it’s often possible to “atomicise” your changes into a half dozen commits.