我正在寻找一个在Python代码中查找print语句的git钩子。如果找到print语句,则会阻止git commit。
我想覆盖这个钩子,我被告知有一个命令可以这样做。我找不到它。有什么想法吗?
答案 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 680ee55见Kevin 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 beginners
和comment
来完成此提交但又没有进一步问题的人{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