如何防止git commit --no-verify命令?

时间:2016-11-10 03:58:29

标签: git github gitlab

我想为所有git repos设置一个预提交钩子,以使用jshint和phplint验证语法错误。但问题是git有一个功能,可以通过使用--no-verify标志跳过预提交挂钩。但我不需要使用该选项。我可以阻止--git的确认标志吗?请建议一种方法。

1 个答案:

答案 0 :(得分:0)

首先,您不能确定地阻止某人通过--no-verify选项。就是说,使用pre-commit钩子进行掉毛是一种好习惯,避免无故通过--no-verify选项也是一种好习惯。

但是,如果您希望通过--no-verify选项变得更加麻烦,则可以:

  1. 生成验证令牌并将其附加到pre-commit中的提交消息中;
  2. 如果缺少此令牌或该令牌无效,请使用非零退出代码
  3. 退出pre-receive。 (您可以在预接收挂钩中执行的操作示例:https://github.com/github/platform-samples/tree/master/pre-receive-hooks

决心避免通过--no-verify的人可以手动执行第1步,这就是为什么这不是100%有效的原因。我不建议在专业环境中进行设置,但是我全都适合那些使用工具的人为自己灌输良好习惯,同时更多地了解git hooks。