通过HTTP在windows上安装Git。后接钩不工作

通过HTTP在windows上安装Git。后接钩不工作,git,apache,githooks,git-post-receive,smart-http,Git,Apache,Githooks,Git Post Receive,Smart Http,我已将Windows上的msysgit配置为HTTP上的服务器。我已将Apache服务器配置为将请求转发到git http backened.exe。当我克隆并试图从远程PC推送到服务器时,一切都很顺利。但是post receive挂钩不工作 我已添加到post receive #!/bin/sh echo "Hook got triggered.." > c:/Repos/logs.txt 当我手动执行脚本时,我看到日志正在打印 但当我从远程系统推送它时,文件会得到更新。Push工作正

我已将Windows上的msysgit配置为HTTP上的服务器。我已将Apache服务器配置为将请求转发到
git http backened.exe
。当我克隆并试图从远程PC推送到服务器时,一切都很顺利。但是
post receive
挂钩不工作

我已添加到post receive

#!/bin/sh
echo "Hook got triggered.." > c:/Repos/logs.txt
当我手动执行脚本时,我看到日志正在打印

但当我从远程系统推送它时,文件会得到更新。Push工作正常,但似乎没有调用钩子,因为日志没有打印

post-receive
的权限为
-rwxr-xr-x

我的
post-receive
用于通过SSH配置git时发送邮件,没有任何问题。在将git改为通过HTTP工作之后,我面临着一些问题。我不知道需要做什么额外的改变才能使钩子工作

xxx.git/.git/hooks
文件夹

这是行不通的:如果回购协议是裸回购协议(如命名约定所示,
xxx.git/
,即以
.git
结尾的文件夹),那么
hooks/
文件夹应该就在它的正下方

xxx.git/hooks
当您设置Git服务器时,最好的做法是该服务器只管理裸回购。
见:

  • “”
  • “”

您的收件钩在哪里?它在您要推到的裸repo
xxx.git
hooks
文件夹中吗?它在xxx.git/.git/hooks文件夹中。是的,xxx.git是回购协议,我正在推动。我做到了,但没有区别。以前我的回购是正常的回购,所以我加入了xxx.git/.git/hook。现在,我用裸回购进行了测试。这两种方式都不管用。@deepika但你确定这是一种赤裸裸的回购吗?()您的钩子脚本名为“
post receive
”而没有任何扩展名吗?(所以不是
post-receive.sh
post-receive.bat
)?是的,现在我知道了裸回购和正常回购之间的区别后,确定了这一点。它是“post receive”,没有任何扩展名。与通过SSH为GIT工作的文件相同。我读到,无论是HTTP还是SSH调用钩子,都不会有任何区别。@deepika当您(使用SSH)推送到一个裸repo
xxx.git/hooks/post receive
时,它能工作吗?