跳过Git提交钩子

时间:2011-08-29 13:32:00

标签: git githooks git-commit

我正在寻找一个在Python代码中查找print语句的git钩子。如果找到print语句,则会阻止git commit。

我想覆盖这个钩子,我被告知有一个命令可以这样做。我找不到它。有什么想法吗?

5 个答案:

答案 0 :(得分:584)

可能(来自git commit man page):

git commit --no-verify

-n  
--no-verify
  

此选项绕过pre-commit和commit-msg挂钩。另请参阅githooks(5)

commented作为Blaise-n对某些命令可以有不同的作用。
例如,git push -n实际上是一种干涸的推动 只有git push --no-verify会跳过钩子。


注意:Git 2.14.x / 2.15改进了--no-verify行为:

commit 680ee55Kevin Willford (``)(2017年8月14日) (由Junio C Hamano -- gitster --合并于commit c3e034f,2017年8月23日)

  

commit:如果没有pre-commit挂钩

,则跳过丢弃索引      

git commit”用于丢弃索引并从文件系统重新读取   以防pre-commit钩子在中间更新它;这个   当我们知道我们没有运行pre-commit挂钩时,我们已经过优化。

答案 1 :(得分:13)

来自man githooks

  

预提交
         这个钩子由git commit调用,可以用--no-verify选项绕过。它          不接受任何参数,并在获得建议的提交日志消息之前调用          并提交。从此脚本退出非零状态会导致git          承诺中止。

答案 2 :(得分:10)

对于那些花了几个小时(使用very beginnerscomment来完成此提交但又没有进一步问题的人{p>

no verify

答案 3 :(得分:3)

--not-verify 有效,但就我而言,我不想一直将参数放在终端上。所以我选择了更具侵略性的东西。

如果您想全局禁用 git hooks,您可以尝试运行:

git config --global core.hooksPath /dev/null

但是,如果您想保持原样,只需在终端中运行以下命令:

git config --global --unset core.hooksPath

如果您不希望它是全局的,只需删除参数:--global

我希望它对某人有用,我用 git 2.16.3 测试过

答案 4 :(得分:0)

出于某种原因,--no-verify 对我来说不适用于这个特定的钩子:prepare-commit-msg

如果您也遇到此问题,请尝试:

SKIP=prepare-commit-msg git commit