问题
I would like to setup a pre-commit hook for all git repos to validate syntax errors using jshint and phplint. But the issue is that the git has a feature which can skip pre-commit hook from happening by using --no-verify flag. But i don't need to use that option. Can i prevent that --no-verify flag for git Please suggest a way.
回答1:
First off: you can't definitively prevent someone from passing the --no-verify
option. That said, it's a good practice to use pre-commit
hooks for linting, and it's a good practice to avoid passing the --no-verify
option without reason.
If, however, you want to make it more cumbersome to pass the --no-verify
option, you could:
- generate a verification token and append it to the commit message in
pre-commit
; - exit
pre-receive
with a non-zero exitcode if this token is missing or invalid. (Examples of things you can do in pre-receive hooks: https://github.com/github/platform-samples/tree/master/pre-receive-hooks)
Someone determined to avoid passing --no-verify
could manually do step 1, which is why this isn't 100% effective. I wouldn't recommend setting this up in a professional context, but I'm all for people using the tools at their disposal to instill good habits for themselves, while learning more about git hooks.
来源:https://stackoverflow.com/questions/40519739/how-to-prevent-git-commit-no-verify-command