Git 预提交 Hook 在 GitHub for mac 中失败(在命令行上工作)

标签 git github atlassian-sourcetree github-for-mac

我创建了一个非常简单的预提交脚本:-

#!/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/

相关文章:

git - git如何检测文件已被修改?

git - 我如何在 git 中故意分离 HEAD?

git - 插件 repo 的子模块或 .gitignore?

bash - Packer - 用于克隆私有(private)存储库的 Shell 脚本配置程序 - 自动启动 EC2 实例

git - 在发出 pull 请求后,如何仅推送到 Github 存储库的分支分支

git - 如何将 GitHub 存储库中的文件转换为 Gist

php - Azure GitHub 部署问题

git - .gitignore 不会忽略文件

git - 在 SourceTree Windows 中编辑提交消息(已推送到远程)

git - 删除/撤消 Sourcetree 上的 merge