我搜索了问题,但它仍然没有回答我的问题。
他们中的大多数建议设置权限,因此可以执行该文件。完成 - 设置为777。
传输协议必须不是http,而是ssh。我希望它是,在我检查浏览存储库的git扩展中 - 它是从git@bitbucket.org开始的,所以它应该是ssh协议。
post-receive看起来像这样:
#!/bin/sh -x
echo 'test';
git log -1 HEAD --pretty=format:"%x09%ad%x09";
touch ~/repos/develop/dashboard/test.txt;
所以当我运行git pull时,那些应该被执行。
我尝试将post-receive重命名为post-checkout - 然后在调用git checkout时执行。
但是用git pull - post-receive就像被忽略了。
还有一些提到noexec分区。但是我希望如果结账后工作正常,那么这也必须有效,因为还需要执行结账后。
我还应该检查什么?
更新
我会告诉我为什么选择这个钩子,也许你可以建议另一种方式。
我想在git pull上调用一些链接,这会将当前日期保存到数据库中。因此,当用户打开网站时 - 他可以看到网站上次更新的时间,因此我不需要手动设置每次网站更新的时间。
更新 好的,我看到有趣的一句话:
这些脚本在推送到服务器之前和之后运行。
我从我编写代码的计算机上推送到服务器。 我的ubuntu服务器怎么知道我推了?我应该将接收后的文件放在我编程和推送的计算机中吗?我可以尝试,但不知何故它似乎不可能有所帮助。
更新
尝试将post-receive放在我用来推送的计算机中,正如我所料 - 在ubuntu服务器和我的计算机中都没有创建test.txt。
更新
我是如何实现使用合并后挂钩的。它是客户端类别。我的服务器是一个相对于比特桶的客户端。所以当我拉到我的服务器时,合并完成,所以我的脚本被执行了。
答案 0 :(得分:4)