Git 挂钩:远程存储库应该接受推送,只有在提交消息内容特定字符串时

Git Hooks: remote repository should accept push, only if commit message contents particular string

我正在服务器端编写更新挂钩。我已经成功限制了。
1. 文件大小
2. 文件扩展名
我现在想做的是,检查消息并仅在该内容字符串(例如 "INFO:" 时才接受)。

我已经在 update 钩子中检查了 git log,但它只给出了已经接受的结果。
在 accepting/pushing 更改为存储库之前,我应该如何检查消息。

您可以从git官方网站看一下这个网站:Customizing Git - An Example Git-Enforced Policy

它有一个与您的用例非常相似的用例。具体这部分:

$regex = /\[ref: (\d+)\]/

# enforced custom commit message format
def check_message_format
  missed_revs = `git rev-list #{$oldrev}..#{$newrev}`.split("\n")
  missed_revs.each do |rev|
    message = `git cat-file commit #{rev} | sed '1,/^$/d'`
    if !$regex.match(message)
      puts "[POLICY] Your message is not formatted correctly"
      exit 1
    end
  end
end
check_message_format