1

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

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

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

或者,您可能希望根据相关文件检查票证 ID。

ETC...

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

4

1 回答 1

4

但是现在想象一个你想让钩子/预提交脚本根据提交消息表现不同的情况?

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

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


除了进行实际签到commit-msg(这似乎违反直觉)之外,有没有办法做到这一点?

做到这一点的方法是精确地使用commit-msg

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

于 2014-09-19T10:58:33.830 回答