如何使git预提交行为取决于提交消息?

时间:2014-09-19 09:25:39

标签: git commit pre-commit-hook commit-message

我知道要在提交之前让git检查提交消息,你可以实现hooks/commit-msg。但是现在想象一下你想让hooks/pre-commit脚本根据提交消息表现不同的情况?

例如(在非常松散的环境中)您可能想要检查提交消息中是否有[nocheck]标记,它总是让您的提交检查通过。

或者 - 在更严格的环境中 - 您可能希望对每个文件进行注释(并因此单独列出)。

或者您可能希望根据相关文件检查故障单ID。

等...

除了在commit-msg?8?进行实际检查(这似乎是违反直觉的)之外,还有办法实现这个目的吗?

1 个答案:

答案 0 :(得分:3)

  

但是现在想象一下你想让hooks / pre-commit脚本根据提交消息的不同行为?

这是不可能的,因为在触发时没有提交消息......

  

在您输入提交消息之前,首先运行pre-commit挂钩


  

除了在commit-msg进行实际检查之外,有没有办法实现这一点(这似乎是违反直觉的)?

这样做的方法正是使用commit-msg

  

commit-msg挂钩采用一个参数,该参数也是包含当前提交消息的临时文件的路径。如果此脚本退出非零,Git将中止提交过程,因此您可以使用它来验证项目状态或提交消息,然后再允许提交