我创建了一个非常简单的预提交脚本:-
#!/usr/bin/env sh
# Run tests
npm test
if [ $? -ne 0 ]; then
echo "Tests failed. Aborting.."
exit 1
fi
exit 0
当我在命令行运行 git commit
时(测试失败),我得到了预期的 exit 1 消息 Tests failed。中止..
.
但是,如果我使用 GitHub for Mac,我会得到:
.git/hooks/pre-commit: line 5: npm: command not found
Tests failed. Aborting..
(256)
我猜测是因为 npm
不适用于 GitHub for Mac 使用的执行环境,但我一直在绞尽脑汁想弄清楚如何解决这个问题。
最佳答案
已解决。由于全局安装的节点模块最终位于 /usr/local/bin
下,我只需要在预提交的开头添加以下内容:
PATH=$PATH:/usr/local/bin:/usr/local/sbin
即在执行时将 /usr/local/bin
和 /usr/local/sbin
附加到 PATH
。
关于Git 预提交 Hook 在 GitHub for mac 中失败(在命令行上工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12881975/