Add more git exception types.
Throw proper exception in git status.
check for dirty tree, before committing.
Merge pull request #2222 from dart-lang/optimize_commit

Optimize commit