Git服务器端钩子没有运行?

Git服务器端钩子没有运行?,git,githooks,Git,Githooks,我是Git服务器端钩子的新手,我遇到了一个问题,看起来钩子根本没有运行。我的Git回购是一种裸回购 我所要做的就是从repo中提取一个文件并将其写入其他地方的磁盘。我不需要整个档案 在远程(源)服务器上,我编写了此文件并将其粘贴在/my/path/repo.git/hooks中 #!/bin/sh # For debugging echo "HELLO" > /my/path/hello.txt # Auto-deploy thefile.php to /my/path/ every

我是Git服务器端钩子的新手,我遇到了一个问题,看起来钩子根本没有运行。我的Git回购是一种裸回购

我所要做的就是从repo中提取一个文件并将其写入其他地方的磁盘。我不需要整个档案

在远程(源)服务器上,我编写了此文件并将其粘贴在
/my/path/repo.git/hooks

#!/bin/sh

# For debugging
echo "HELLO" > /my/path/hello.txt

# Auto-deploy thefile.php to /my/path/ every time something is pushed to this repo
exec git -C /my/path/repo.git show master:thefile.php > /my/path/thefile.php
我已验证挂钩上的权限:

-RWXR-x 1 webadmin webadmin 543 Jan 15 16:27更新后

如果我在我的服务器上手动运行脚本,使用
$./path/to/repo.git/hooks/post update
,一切正常
hello.txt
thefile.php
一起编写

但当我把本地回购协议推到原点时,一切都不会改变。我通过还原最新提交并推送来测试推送。在下一个测试中,我删除该revert-commit并强制push将其从
origin/master
中删除。这样,每次推送时都会有实际的提交和更改。出于绝望,我做了一个全新的提交,并进行了任意更改,但这并没有造成任何影响

我已经尝试了这个钩子作为
post-update
post-receive
。两个似乎都不起作用


我非常感谢你们能提供的任何见解。

首先,确保您正在推进您认为自己是的裸回购:在该裸回购中,在服务器上,执行一个
git status
和一个
git log
,以确认您正在推进的提交确实存在

其次,检查侦听器的日志,该日志允许您推送到裸repo:SSH或HTTPS。
如果没有HTTP(S)侦听器,请考虑为测试添加一个:最简单的是GITEA()/P> 第三,检查服务器上Git的版本,以防它太旧

增加


第二部分给了我一个线索,让我找到了真正的答案:

我是通过文件系统共享(Windows中的映射网络驱动器)推动的,显然这些不会触发服务器上的挂钩,因为没有侦听器

将所有内容更改为使用SSH,现在它可以工作了。谢谢
(另一方面,这也解释了我的“
git config noff
”策略被忽略的原因。)


首先,确保您正在推送到您认为自己是的裸repo:在该裸repo中,在服务器上执行
git status
git log
,以确认您正在推送的提交确实存在

其次,检查侦听器的日志,该日志允许您推送到裸repo:SSH或HTTPS。
如果没有HTTP(S)侦听器,请考虑为测试添加一个:最简单的是GITEA()/P> 第三,检查服务器上Git的版本,以防它太旧

增加


第二部分给了我一个线索,让我找到了真正的答案:

我是通过文件系统共享(Windows中的映射网络驱动器)推动的,显然这些不会触发服务器上的挂钩,因为没有侦听器

将所有内容更改为使用SSH,现在它可以工作了。谢谢
(另一方面,这也解释了我的“
git config noff
”策略被忽略的原因。)


第二部分给了我一个线索,让我找到了真正的答案:我是通过文件系统共享(Windows中的映射网络驱动器)来推动的,显然这些不会触发服务器上的钩子,因为没有侦听器。将所有内容更改为使用SSH,现在它可以工作了。谢谢(另一方面,这也解释了为什么我的“git config noff”策略被忽略。)@DOOManiac感谢您的反馈。我在答案中加入了你的评论,以提高可视性。第二部分给了我一个线索,让我找到了真正的答案:我是通过文件系统共享(Windows中的映射网络驱动器)推动的,显然这些不会触发服务器上的挂钩,因为没有侦听器。将所有内容更改为使用SSH,现在它可以工作了。谢谢(另一方面,这也解释了为什么我的“git config noff”策略被忽略。)@DOOManiac感谢您的反馈。我已将您的评论包含在答案中,以提高可视性。