我试图执行一个git commit消息策略来保持我的仓库干净整洁。我见过关于服务器端和客户端钩子的官方文档,然后我碰到了husky。如何使用赫斯基来检查git commit消息格式?
到目前为止,我可以与第一个合作,但不能设置哈士奇,我还有很多东西要学。主要想法是能够在新工作站上工作而无需手动设置任何客户端挂钩。
有人可以解释我如何设置哈士奇来检查我的提交消息,甚至作出例子吗?
这是我在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一个测试项目的一个截图,提交-MSG钩和错误它给了。
相同的钩子,放在.git /钩子文件夹中,工作得很好。
首先,感谢您的帮助!正如编辑中提到的,我试图配置package.json文件,但它根本不起作用。我也尝试了validate-commit-msg,这也不起作用......到目前为止,我可以运行一个脚本(“postinstall”:“sh hooks/setup_hooks.sh”)来将我的钩子移动到.git /钩子文件夹。 – remmargorp
@remmargorp你在哪个操作系统上工作?用哪个版本的npm? – VonC
我在Ubuntu 16.04和npm是4.0.5版本 – remmargorp