Git Workflow for Agile Teams
reinh.com
reinh.com
And running tests before commit? Why not commit, run tests, then commit again? Do you really want to risk losing the work you just did because of a silly mistake (like piping something into a crucial file)?
I've personally never worked this way, I don't commit until all tests are passing and I can't think of any time where I've ran into issues with this process. To each his own.
I concur that it's nicest to then squash all of those tiny steps into a single feature/bug-fix chunk.