我知道要在提交之前让git检查提交消息,你可以实现hooks/commit-msg
。但是现在想象一下你想让hooks/pre-commit
脚本根据提交消息表现不同的情况?
例如(在非常松散的环境中)您可能想要检查提交消息中是否有[nocheck]
标记,它总是让您的提交检查通过。
或者 - 在更严格的环境中 - 您可能希望对每个文件进行注释(并因此单独列出)。
或者您可能希望根据相关文件检查故障单ID。
等...
除了在commit-msg?8?进行实际检查(这似乎是违反直觉的)之外,还有办法实现这个目的吗?
答案 0 :(得分:3)
但是现在想象一下你想让hooks / pre-commit脚本根据提交消息的不同行为?
这是不可能的,因为在触发时没有提交消息......
在您输入提交消息之前,首先运行
pre-commit
挂钩 。
除了在
commit-msg
进行实际检查之外,有没有办法实现这一点(这似乎是违反直觉的)?
这样做的方法正是使用commit-msg
:
commit-msg
挂钩采用一个参数,该参数也是包含当前提交消息的临时文件的路径。如果此脚本退出非零,Git将中止提交过程,因此您可以使用它来验证项目状态或提交消息,然后再允许提交。