fix bug
add pre-commit hook