【问题标题】:Post-receive hook does not recognize arguments接收后挂钩不识别参数
【发布时间】:2012-12-10 12:11:16
【问题描述】:

我使用 ssh 访问远程 git 存储库。我在 hooks 目录中添加了这样一个简单的 post-receive 脚本:

#/bin/sh
REPO="$1"
REV="$2"
echo $REPO $REV >> /var/log/gitlog

我在本地电脑改了代码,push了很多次,/var/log/gitlog什么都没看到。我已经检查了post-receive的许可。它的文件掩码已设置为 777。所有用户都可以在控制台上执行该脚本。

【问题讨论】:

    标签: git


    【解决方案1】:

    这可能是因为该钩子 (post-receive) 不接受任何参数。

    gitHooks:

    这个钩子由远程存储库上的 git-receive-pack 调用,当在本地存储库上完成 git push 时会发生这种情况。它在所有 ref 更新后在远程存储库上执行一次。

    这个钩子为接收操作执行一次。 它不接受任何参数,但获得的信息与 pre-receive 钩子在其标准输入上获得的信息相同

    This answer 提及:

    您必须使用read 命令。

    #!/bin/sh
    read oldrev newrev refname
    ...
    

    【讨论】:

    • 你是对的。我不能使用 $1 来获取论点。我从 SVN 挂钩复制了这个脚本,并提出了这个问题。使用“read oldrev newrev refname”是正确的方法。非常感谢!
    猜你喜欢
    • 2011-04-15
    • 2015-11-25
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多