繁体   English   中英

Git发布接收挂钩未运行

[英]Git post receive hook is not running

我搜索了所有问题,但仍然无法回答我的问题。

他们中的大多数建议设置权限,以便可以执行文件。 完成-设置为777。

传输协议必须不是http,而是ssh。 我希望是这样,在git扩展中,我检查了浏览存储库-它以git@bitbucket.org开头,因此应该是ssh协议。

接收后简直是这样的:

#!/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-后接收就像被忽略了。

还有一些提到的noexec分区。 但是我希望,如果后结帐有效,那么这也必须起作用,因为后结帐也需要执行。

我还应该检查什么?

更新:

我将告诉您为什么选择此钩子,也许您可​​以提出另一种建议。

我想在git pull上调用一些链接,该链接会将当前日期保存到数据库中。 因此,当用户打开网站时-他可以看到该网站的最新更新时间,因此我不需要手动设置每次网站更新的时间。

更新:好的,我看到有趣的一行:

这些脚本在推送到服务器之前和之后运行。

我从编写代码的计算机上推送到服务器。 我的ubuntu服务器如何知道我已推送? 我是否应该将接收后的文件放入要编程和推送的计算机中? 我可以尝试,但是以某种方式看来它不会有所帮助。

更新

尝试将后接收放入我用来推送的计算机中,并且符合我的预期-在ubuntu服务器或计算机中均未创建test.txt。

更新

我如何实现使用合并后挂钩的。 这是客户端类别。 我的服务器相对于它来说是一个客户端。 因此,当我拉到服务器时,合并完成,因此我的脚本得以执行。

这些脚本(接收前,接收后和更新)在推送到服务器之前和之后运行,而不是在客户端运行。

因此,您需要检查客户端挂钩

tldr; git pull之后没有特定的钩子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM