我想为所有的git仓库设置一个pre-commit hook,使用jshint和phplint来验证语法错误。但问题是git有一个功能,可以通过使用
--no-verify
标志跳过pre-commit hook的执行。但我不需要使用这个选项。请问有没有办法阻止git使用--no-verify
标志?请给出建议。--no-verify
选项。话虽如此,使用pre-commit
钩子进行linting是一个好习惯,并且没有理由的情况下不要传递--no-verify
选项。--no-verify
选项更加麻烦,可以:
pre-commit
提交消息中;pre-receive
。(在pre-receive钩子中可以执行的示例操作:https://github.com/github/platform-samples/tree/master/pre-receive-hooks)--no-verify
的人可能会手动执行步骤1,这也是为什么这种方法不是100%有效的原因。 我不建议在专业环境中设置此项功能,但我支持人们利用手头工具来培养自己的良好习惯,同时学习更多关于git hooks的知识。Git钩子是客户端验证(类似于前端),如果您想确保验证永远不会被跳过,您需要在CI(后端)上执行它。
在你的VSCode侧边栏中,前往已安装应用程序的getLens,然后点击设置图标。然后点击“扩展设置”。顶部有一个搜索输入框,只需输入“git”。您将看到“git(81)”。单击它,然后选中“允许不验证提交”复选框。
prepare-commit-msg
可能会很有用。它在提交时也被调用,但不会被--no-verify
绕过。然而,请注意,文档中说“它不应该被用作预提交钩子的替代品。”(我不知道为什么。) - tom