如果 .git/hooks/pre-commit 看着在,但提交时完全没反应,先别急着重装 hook。Git 可能被仓库或全局配置改了 hooks 目录:
git config --show-origin --get core.hooksPath
git rev-parse --git-path hooks
第一条能看到配置来自哪个文件,第二条会给出当前仓库实际使用的 hooks 目录。前者有值时,脚本要放在那个目录;确认不需要这项配置后,再考虑用 git config --unset core.hooksPath 清掉。最后别忘了检查脚本是否可执行:chmod +x path/to/pre-commit。
环境:Git 2.x,Linux 或 macOS。上面两条命令只读取配置和路径,不会修改仓库。