我有一个非常基本的pre-commit-hook,其中包含以下代码:
#!/usr/bin/env bash
vagrant ssh -c "/var/www/public/tests.sh"但是,每当我尝试提交时,我都会得到以下信息:
.git/hooks/pre-commit: line 2: vagrant: command not found“流浪者”已经安装,并且正在运行。如果我手动执行该命令,它就会工作,只有当Git试图运行它时,它才会运行。
我已经尝试了以下几种方法:
pre-commit.sh,并从预提交钩子中调用它。发布于 2016-11-22 10:58:46
预提交使用自己的环境在自己的shell中运行。它不一定共享您的环境,也就是您的路径或当前目录。你需要在你的预提交钩子明确。所以是的,您要么需要指定流浪二进制文件的完整路径,要么必须确保为运行预提交钩子的环境正确设置了路径。
当使用完整路径时,您得到“虚拟框没有运行”消息的原因是,提交钩子没有在与您的Vagrantfile相同的目录中执行。是git存储库根目录中的Vagrantfile。那么我希望它能起作用--参见In a git hook is the current working directory guaranteed to be within the git repository?
如果您的Vagrantfile文件位于其他地方,您有几个选项。您可以设置VAGRANT_CWD并提示Vagrantfile位于何处(请参阅https://www.vagrantup.com/docs/vagrantfile/),或者指定运行框的id:
vagrant ssh <box-id> ...一个人可以用
vagrant global-status 来确定这个身份。或者,您只需确保脚本更改为Vagrantfile的目录。
https://stackoverflow.com/questions/40738425
复制相似问题