跳过Git提交钩子


Answers:


866

也许(来自git commit手册页):

git commit --no-verify

-n  
--no-verify

该选项绕过了pre-commit和commit-msg挂钩。另请参见githooks(5)

正如Blaise评论的那样,对于某些命令可以扮演不同的角色。 例如,实际上是空试。 只会跳过钩子。-n
git push -n
git push --no-verify


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

参见Kevin Willford(``)提交680ee55(2017年8月14日
(由Junio C gitsterHamano合并--commit c3e034f中,2017年8月23日)

commit:如果没有pre-commit钩子,则跳过丢弃索引

git commit”用于丢弃索引并从文件系统中重新读取,以防pre-commit挂钩在中间对其进行了更新;当我们知道我们不运行pre-commit钩子时,这已被优化。


DAVI利马指出,在意见git cherry-pick没有支持--no-验证。
因此,如果cherry-pick触发了一个预提交的钩子,您可能会像本博客文章中一样,必须以某种方式注释/禁用该钩子,以使您的git cherry-pick得以继续。合并冲突解决后
,如果是git rebase --continue,则必须执行相同的过程。



1
@DaviLima谢谢。我已经在您的答案中加入了您的评论,以提高知名度。
VonC

1
谢谢@Vonc。git rebase --continue顺便说一句同样发生
达维·利马

嗨,就我而言,团队中的某人不断hook使用一些预先提交的脚本来更新我的文件夹,这很烦人,有没有办法防止hookgit pull覆盖我的文件夹?
Zennichimaro

@Zennichimaro也许您可以将该回购钩子文件夹复制到其他位置,并设置合并后的钩子(git-scm.com/docs/githooks#_post_merge),该钩子将检测拉动是否影响回购钩子文件夹,并建议将其复制内容存储到本地挂钩文件夹(在存储库之外):这样,您至少可以控制是否要通过同事推送的内容覆盖挂钩。
VonC

22

来自man githooks

pre-commit
这个钩子由git commit调用,可以使用--no-verify选项绕过。它不带任何参数,并且在获取建议的提交日志消息并进行提交之前被调用。从此脚本以非零状态退出会导致git commit中止。


2

对于那些very beginners花了几个小时进行此提交(带有commentno verify)且没有其他问题的用户

git commit -m "Some comments" --no-verify
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.