我试图制定一个git提交信息策略,以保持我的存储库整洁和清晰。我已经看过有关服务器端和客户端挂钩的官方文档,然后我发现了husky。
到目前为止,我已经能够使用第一个,但无法设置husky,我还有很多东西要学习。主要想法是能够在新工作站上工作,而不必手动设置任何客户端挂钩。
可以有人解释一下如何设置husky来检查我的提交消息甚至做一个例子吗?
这是我位于project-root/githooks
文件夹中的commit-msg挂钩:
#!/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文件夹中,可以正常工作。