设置预提交挂钩服务器端

Setting pre-commit-hook server side

是否可以在服务器存储库中设置预提交挂钩并在克隆存储库时将它们下载到客户端?

来自git-scm

The hooks are all stored in the hooks subdirectory of the Git directory. In most projects, that’s .git/hooks.

记得 .git/ 是在本地管理的。

所以,不,没有编程方式仅使用 git 来 强制 一个存储库在克隆时安装挂钩。

也就是说,通常的做法是将挂钩捆绑到存储库中的 hooks/ 文件夹中,然后

  • 在自述文件中解释如何安装它们,或者
  • 提供一个脚本,该脚本将在克隆后安装它们,用户必须 运行 手动安装它们。

如果您有想要验证的规则,您可以使用这些规则来冒烟测试是否有人使用了挂钩,您可以在遥控器中安装 pre-receive 挂钩。

例如,如果您有一个预先提交分支标识符的预提交挂钩来提交消息,您可以签入预接收挂钩(实际上在 'server' 上),提交消息以分支标识符。