是否有办法只跳过commit-msg钩子?



我在commit-msg钩子中检查了提交消息,有时我想跳过它。我知道该任务有一个git commit --no-verify,但它也跳过了预提交钩子。是否有一种方法可以只跳过commit-msg钩子而不跳过预提交?

不可以,但也可以:

  • Git没有提供这样的机制。
  • 但是Git不写提交钩子。你写提交钩子。

所以,写你的commit-msg钩子,让它检查一些控制旋钮:"如果控制旋钮被设置为一种方式,检查提交消息;如果设置为其他方式,则只需接受提交消息

。你现在的任务是选择控制旋钮,并确保它在正确的时间设置正确的方式。一个明显的可能性是一个简单的环境变量:

$ SKIP_MESSAGE_CHECK=yes git commit -m "silly message"

(假设是sh/bash风格的shell;如果需要,使用env SKIP_MESSAGE_CHECK=yes ...)。