Git on Windows over HTTP.接收后挂钩不起作用



我已经在Windows上配置了msysgit作为HTTP上的服务器。我已经配置了Apache服务器将请求转发到git-http-backened.exe。当我克隆并尝试从远程PC推送到服务器时,一切正常。但是post-receive钩不起作用。

我已添加到接收后

#!/bin/sh
echo "Hook got triggered.." > c:/Repos/logs.txt

当我手动执行脚本时,我看到日志被打印出来。

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

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

当我通过 SSH 配置 git 时,我的post-receive曾经毫无问题地发送邮件。将 git 更改为通过 HTTP 工作后,我遇到了问题。我不知道,需要做哪些额外的更改才能使钩子工作。

xxx.git/.git/hooks文件夹。

这是行不通的:如果存储库是裸存储库(如命名约定xxx.git/所示,即以 .git 结尾的文件夹),则hooks/文件夹应紧邻其下方。

xxx.git/hooks

设置 Git 服务器时,最佳做法仍然是该服务器仅管理裸存储库。
看:

  • "Git 推送仅适用于裸存储库?"
  • "在 Git 中使用 receive.denyCurrentBranch 有什么后果?"

最新更新