有没有办法只跳过 commit-msg 挂钩

Is there a way to only skip the commit-msg hook

我已经在 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 ...