哪个git钩子用于验证推送的提交消息?

bcm*_*cfc 6 git githooks

我需要验证推送到远程的提交消息,以防止开发人员没有提供足够的细节(字符串长度)或只提供票号.

我认为更新钩子可以用于此但它似乎没有 - 但它只适用于之前已被推送的引用.当我试图推动一个新分支时,它拒绝了,因为它找不到引用.我怀疑它也可能只是针对推送系列中的最新提交而运行.

执行此任务的钩子的正确选择是什么?

片段:

#!/usr/bin/env php
<?php

define('MINIMUM_MESSAGE_LENGTH', 10);

$exit = 0; // default exit code -> success

$ref = $argv[1];
$commitMessage = exec('git log -1 ' . $ref . ' --pretty=format:%s');
$commitMessage = trim($commitMessage);

// validations & exit($exit) follow; 
Run Code Online (Sandbox Code Playgroud)

这是PHP,但问题是语言不可知

Von*_*onC 6

策略实施意味着服务器端挂钩.

  • 客户侧钩pre-commit可以被旁路,并且不容易部署.
  • 一个服务器端部署一次(在混帐回购协议托管服务器),和你做.

Git Pro书中有一个例子(" 自定义Git - 示例Git强制策略 "),它应该适用于新分支以及传统分支推送.

您将在" 如何验证推送的提交消息? "中找到其他示例.