我在服务器端拥有裸露的回购协议(protocol),并且能够从本地计算机成功提交和推送。但是,接收后挂钩未运行。细节:

  • 使用SSH作为协议(protocol)
  • 我已将标准“post-receive.sample”重命名为“post-receive”
  • 此文件具有-rwxr-xr-x权限
  • 该文件由拥有存储库的同一用户拥有,该用户是登录并推送
  • 的同一SSH用户
  • 实际推送正常;文件已更新-只是钩子(Hook)无法运行
  • 我尝试在钩子(Hook)之前和之后放置echo "Some text",但这未显示(请参阅:Post Commit Hook Not Running)。
  • Hook脚本包含在下面,尽管这似乎不是造成
  • 问题的原因
  • 在Ubuntu 10.04上使用git 1.7.0.4


    user@server:/home/repos/project1/hooks# cat post-receive
    #!/bin/sh
    echo "Hook is running..."
    export GIT_WORK_TREE=/home/web/project1/www/
    git checkout -f
    rm -rf /home/web/project1/www/temp/
    

    最佳答案

    为了运行Git挂钩,它需要设置权限以使其可执行。如果一个钩子(Hook)似乎没有在运行,请check the permissions并确保它是可执行的。如果不是,您可以使所有的钩子(Hook)都可以像这样执行:

    chmod ug+x .git/hooks/*
    

    ...或者如果您想使一个钩子(Hook)(例如post-receive)可执行:
    chmod ug+x .git/hooks/post-receive
    

    (感谢this post)

    关于git - git post-receive钩未运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8206023/

  • 10-14 15:52