我已经在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
有什么后果?"