Git在执行钩子时无法识别存储库

时间:2016-03-06 20:54:47

标签: git bash ssh

在我的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 "****" 

1 个答案:

答案 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)