在我的post-receive钩子中,我想运行这个简单的钩子,如果你取出回声,那么实际上只有两行。
我通过ssh(ing)验证命令是否正确,然后仔细检查路径。
但是我收到了这个错误:
remote:fatal:不是git存储库:'。'
'是什么?'意思是,为什么它不起作用。如果我在服务器上手动输入这些命令,它们可以正常工作。
但他们没有这样做。
收到后挂钩
#!/bin/sh
echo "****"
echo "*****"
echo "start:post-receive"
echo "*****"
echo "****"
cd /home/user_name/public_html
git pull /home/user_name/root.git master
echo "****"
echo "*****"
echo "end:post-receive"
echo "*****"
echo "****"
答案 0 :(得分:0)
我从shell运行set并没有看到它列出
那是因为它是在执行钩子本身时设置的
查看echo $GIT_DIR
在该钩子脚本中告诉您的内容。
通过执行“unset GIT_DIR
”,您将强制git查找刚刚更改文件夹的git目录:/home/user_name/public_html
(应该有.git
子文件夹)
我还建议在钩子中的任何git命令中使用--git-dir
和--work-tree
选项。这样,就不足为奇了。例如,请参阅“Deploy website using Git/Gitolite (post-receive
hook doesn't work properly)”