Mac系统下Git pre-commit hooks无法触发问题求助
Git Pre-Commit Hook 无法运行排查方案
- 确认钩子文件名完全匹配:Git的pre-commit钩子必须严格命名为
pre-commit,你当前的脚本名为message-test,这是核心问题——Git只会触发与事件同名的钩子脚本,重命名脚本为pre-commit后再测试。 - 检查脚本shebang行:Mac系统下的shell脚本必须在第一行指定解释器,比如添加
#!/bin/bash或#!/usr/bin/env bash,缺少这一行会导致系统无法识别执行方式,即使权限正确也会静默失败。 - 手动验证脚本可执行性:在项目根目录直接运行
.git/hooks/pre-commit(改名后),确认能正常输出Hello world。如果手动运行无输出,检查脚本内容是否有语法错误,或输出是否被意外重定向。 - 确认钩子路径配置生效:执行
git config --get core.hooksPath,确保输出为.git/hooks;同时执行git config --global --get core.hooksPath,若存在全局配置会覆盖本地设置,可通过git config --global --unset core.hooksPath清空全局配置。 - 确保触发正确的Git操作:pre-commit钩子仅在
git commit阶段触发,git add操作不会触发钩子,需要执行完整的提交命令(如git commit -m "test commit")来测试。 - 核对脚本权限细节:执行
ls -la .git/hooks/pre-commit,确认权限位为-rwxr-xr-x(用户、组、其他均拥有执行权限),若权限不符,用chmod +x .git/hooks/pre-commit重新设置。
内容的提问来源于stack exchange,提问作者LizCiraG
相关产品推荐
相关产品推荐

