Git钩子更新后文件未运行
我在当地设立了一个测试项目Git钩子更新后文件未运行,git,bash,hook,Git,Bash,Hook,我在当地设立了一个测试项目 ~/development/test/ 我已经在上面初始化了git,我可以推到远程“测试”回购协议。没问题 我可以从命令行手动运行更新后挂钩 ./post-update 它将启动web浏览器,因为该文件包含以下内容: #!/bin/bash echo "Hook is running........." python -mwebbrowser http://example.com 但是当我执行一个gitpush-uoriginmaster时,文件似乎没有运行。b
~/development/test/
我已经在上面初始化了git,我可以推到远程“测试”回购协议。没问题
我可以从命令行手动运行更新后挂钩
./post-update
它将启动web浏览器,因为该文件包含以下内容:
#!/bin/bash
echo "Hook is running........."
python -mwebbrowser http://example.com
但是当我执行一个gitpush-uoriginmaster
时,文件似乎没有运行。bash脚本中的所有内容似乎都没有发生
我已按说明正确设置了文件权限
还有什么好办法吗?我想你用错了钩子。说: 更新后由远程存储库上的
git receive pack
调用,
在本地存储库上完成git推送时会发生这种情况它
在删除所有引用后,在远程存储库上执行一次
更新
你想要一个不存在的柱子推钩。相反,您可以使用预推挂钩
pre-push由git-push
调用。如果此钩子以非零值退出
状态,git push将中止而不推任何内容
将在执行推送之前打开web浏览器,但如果您在后台任务(使用字符&
)上打开它并返回0
,它将执行您正在查找的操作
您的脚本将成为
#!/bin/bash
echo "Hook is running........."
python -mwebbrowser http://example.com &
exit 0
在执行了
git push
之后,您是否有错误消息?@流完全没有错误。啊,这就成功了。虽然,我需要阅读/理解文档,因为我想与人共享这个钩子,但现在它只在我的本地机器上,对吗?是的,很难共享钩子。您可以在所有开发者.git/hook
文件夹中创建指向钩子的符号链接,或者提交一个文件夹hook
,其中包含要启动的钩子和脚本以安装它们。但是,用git部署钩子并不是一个简单的方法。