git更新钩子未接收任何参数

git更新钩子未接收任何参数,git,hook,githooks,Git,Hook,Githooks,我在网上读到git hook接受3个参数: 正在更新的引用的名称 存储在ref中的旧对象名称 以及要存储在ref中的新对象名称 我试图访问这些参数,但它是空的。这里可能出了什么问题 #!/bin/bash echo $@ refname="$1" oldrev="$2" newrev="$3" 根据这些注释,我尝试在updatehook:Args:$@中添加echo语句echo,下面是我看到的输出: $git push Count

我在网上读到git hook接受3个参数:

正在更新的引用的名称

存储在ref中的旧对象名称

以及要存储在ref中的新对象名称

我试图访问这些参数,但它是空的。这里可能出了什么问题

#!/bin/bash


echo $@
refname="$1"
oldrev="$2"
newrev="$3"
根据这些注释,我尝试在updatehook:Args:$@中添加echo语句echo,下面是我看到的输出:

$git push
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 563 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 1 (delta 0)
remote: In update hook: Args:
remote:
remote:
谢谢你的参考链接。 根据您提供的链接,我可以检索以下参数:

资料来源:发布人


钩子必须是可执行的,您是否确保chmod+x$yourscriptfile?另外,请确保从尝试执行的钩子文件中删除.sample命名。此外,请记住,某些钩子不会通过命令行接收参数。参见例如@BjoernRennhak,OP谈到了更新钩子,所以$yourscriptfile实际上是.git/hooks/update.:-它在命令行中确实收到了3个参数。你在服务器repo中将脚本放入git/hooks/update了吗?它是可执行的吗?添加一个echo来验证它是否真的在运行,就像更新钩子中的echo一样。Args:$@我确实添加了一个echo语句,并看到钩子被触发,但参数为空
read oldrev newrev refname
echo "Old revision: $oldrev"
echo "New revision: $newrev"
echo "Reference name: $refname"