You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git的pre-push钩子可手动执行但推送时未被触发,该如何排查解决?

问题排查及解决步骤

  • 文件名配置错误
    Git钩子要求文件完全匹配预设名称,不能带任何后缀。你当前的脚本带了.sh后缀,手动执行的是pre-push.sh,但Git只会识别.git/hooks目录下无后缀的pre-push文件,直接删除文件的.sh后缀即可。
  • 缺少可执行权限
    即使在Windows环境使用Git Bash,也需要给钩子文件添加可执行权限:进入.git/hooks目录后执行命令chmod +x pre-push即可。
  • 自定义钩子路径覆盖了默认配置
    如果你之前修改过Git的钩子路径配置,默认的.git/hooks目录会失效,可执行命令git config --get core.hooksPath检查:如果返回非空结果,要么把你的pre-push文件放到返回的自定义路径下,要么执行git config --unset core.hooksPath恢复默认钩子路径。
  • Git版本过旧
    pre-push钩子是Git 1.8.2版本才新增的功能,如果你的Git版本低于该版本也无法触发,可执行git --version检查版本,升级到最新版即可。

验证方法

修改完成后可执行git push --dry-run测试,不需要真的执行推送就能触发pre-push钩子,验证是否能正常输出你写的日志内容。

内容的提问来源于stack exchange,提问作者Mangos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:06:05