我有一个我喜欢的结账后挂钩 - 大部分时间 - 但我不时地知道运行它会浪费时间,或者,因为它丢弃并重建了我的开发数据库,所以我不喜欢不希望它做它的事情。
是否有跳过挂钩的git选项?如此公平,我已经找到了一个。
答案 0 :(得分:6)
我不认为有一个命令行选项可以做你想要的,但是你可以通过使用环境变量作为标志来解决这个问题。在post-checkout
脚本中,请以:
#!/bin/sh
[ "$SKIP_POST_CHECKOUT" = 1 ] && exit 0
然后当你想跳过post-checkout
脚本时:
SKIP_POST_CHECKOUT=1 git pull
等
如果键入的内容过多,您可以随时缩短变量名称。)。
答案 1 :(得分:3)
您可以从命令行通过强制core.hooksPath
为不存在的路径(通过-c
)来实现此目的
例如:
$ cat .git/hooks/post-checkout
#!/usr/bin/env bash
echo 'nope'
exit 1
$ git checkout -- .
nope
$ git -c core.hooksPath=/dev/null checkout -- .
$
答案 2 :(得分:-1)
我刚刚发现了另一个answer。只需将-c core.hooksPath=/dev/null
选项添加到git命令即可。这将仅覆盖一个命令的配置,并禁用所有挂钩。对于营地:
git -c core.hooksPath=/dev/null checkout master
git -c core.hooksPath=/dev/null pull
git -c core.hooksPath=/dev/null commit ...
git -c core.hooksPath=/dev/null push