I don't like workflow enforcement in git commits; I commit broken/failing code as a safety net in case I really break it later.
More: http://blog.brycekerley.net/post/1082060161/pre-commit-hooks... (and http://news.ycombinator.com/item?id=1669583 )
More: http://blog.brycekerley.net/post/1082060161/pre-commit-hooks... (and http://news.ycombinator.com/item?id=1669583 )
Any "failing" tests in your workflow would be marked as pending rather than actually failing.