我正在尝试执行 git commit 消息策略以保持我的存储库干净整洁。我看过关于服务器端和客户端钩子的官方文档,然后我碰到了husky。
到目前为止,我可以使用第一个但无法设置哈士奇,我还有很多东西要学。主要思想是能够在新工作站上工作,而无需手动设置任何客户端挂钩。
有人可以解释我如何设置 husky 来检查我的提交消息,甚至举个例子吗?
这是我在文件夹中的 commit-msg 钩子project-root/githooks
:
#!/usr/bin/env ruby
message_file = ARGV[0]
message = File.read(message_file)
$regex = /([resolved|fixed]) #([0-9])* ([A-Z])\w+/
if !$regex.match(message)
puts "[POLICY] Your message is not formatted correctly!"
puts "Message format must be like:"
puts "resolved #123 Case title (for features)"
puts "fixed #123 Case title (for bugs)"
puts "First letter of 'Case title' must be capitalized!"
exit 1
end
我尝试将脚本添加到 package.json:
"scripts": {
... : ...,
"commitmsg": "sh hooks/commit-msg",
... : ...
}
钩子不起作用。所有消息都通过。如果放入 .git/hooks 它可以正常工作。
这是一个带有 package.json、commit-msg 钩子和它给出的错误的测试项目的屏幕截图。
同样的钩子,放在 .git/hooks 文件夹中,工作得很好。