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

时间:2016-03-22 11:24:31

标签: git githooks

我正在服务器端编写更新挂钩。我已经成功完成并受到限制 1.文件大小
2.文件扩展名
我现在要做的是,检查消息并仅接受该内容字符串,说“INFO:”。

我已在git log挂钩中使用update进行了检查,但它仅提供了已接受的结果 在接受/推送更改到存储库之前,我应该怎么做才能检查消息。

1 个答案:

答案 0 :(得分:1)

您可以从官方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