Git Hook Post Update文件未运行



我在本地设置了一个测试项目;

~/development/test/

我已经在上面初始化了git,我可以把它推送到我的远程"测试"仓库。没有问题。

我可以从命令行手动运行我的更新后钩子;

./post-update

它将启动一个web浏览器,因为该文件有以下内容;

#!/bin/bash
echo "Hook is running........."
python -mwebbrowser http://example.com

但是当我做git push -u origin master时,文件似乎没有运行。bash脚本中的内容似乎都不会发生。

我已经正确设置了文件权限,正如这篇文章所说的

还有什么可以尝试的吗?

我想你用错钩子了。Git钩子文档说:

post-updategit-receive-pack远程存储库上调用。当在本地存储库上完成git推送时,就会发生这种情况。这在所有引用完成后,在远程存储库上执行一次更新。

你想要一个post-push钩子,但是这个钩子不存在。你可以使用pre-push钩子。

pre-pushgit push调用。如果钩子以非零值退出状态,git push将不push任何东西而终止。

web浏览器将在执行推送之前打开,但如果你在后台任务(字符&)上打开它并返回0,它应该做你正在寻找的。

你的脚本将变成

#!/bin/bash
echo "Hook is running........."
python -mwebbrowser http://example.com &
exit 0

最新更新