我正在尝试正确设置我的webhook。现在我有一个包含以下函数的githook.php文件:
function gitPull()
{
$cmd ='cd /public_html/ethanzh; git pull -u origin master git@github.com:ethanzh/NumberGame_JS.git 2>&1;';
$str = shell_exec($cmd);
if(strpos($str, 'error') !== false)
throw new Exception("Shell error: \n" . $str);
return $str;
}
当我从Github网站上查看我的webhook时,我看到了这个错误:
fatal: 'master' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
现在,我的回购中没有任何分支,所有东西都被直接推送到'主'分支(我是唯一一个在其上工作的人)。
我认为我的问题与实际从回购中拉出的线有关。我该怎么做才能解决这个问题?
由于
答案 0 :(得分:1)
首先,不要使用-u
。虽然它暴露了,但它相对来说是内部的Git。它不像push -u
。
<强> -u 强> 的 - 更新头确定
默认情况下,git fetch拒绝更新与当前分支对应的头部。此标志禁用检查。这个 纯粹是为了内部使用git pull与git进行通信 取,除非你实施自己的瓷器,否则你不是 应该用它。
其次,没有理由在最后一个参数中指定存储库URI。您在Git存储库中,因此已定义origin
(除非您命名另一个远程)。你应该没问题:
git pull origin master
如果您需要更多详细信息,请参阅git pull docs。