Based on pre-commit, with enhanced feature.
Intelligent git hook: easy-to-use, powerful and programmable