Git Pull 在 CGI 和命令行上有不同的结果

Git Pull 在 CGI 和命令行上有不同的结果

我在 GitHub 上有一个“推送后” webhook,它会调用 CGI 脚本来更新 Jekyll 网站。

剧本:

user@server [~/_repo]# cat cgi-bin/githook.cgi
#!/bin/bash
echo Content-type: text/plain
echo

if [ -z "$HOME" ] ; then
HOME=/home/user
fi

GIT_REPO=$HOME/_repo
PUBLIC_WWW=$HOME/public_html

pushd $GIT_REPO
git pull
echo "$HOME/.rvm/bin/ts_jekyll build --source $GIT_REPO --destination $PUBLIC_WWW"
$HOME/.rvm/bin/ts_jekyll build --source $GIT_REPO --destination $PUBLIC_WWW
popd
echo DONE

GitHub 将脚本的输出保存为:

~/_repo ~/public_html/cgi-bin
Updating OLD_COMMIT_SHA..NEW_COMMIT_SHA
/home/user/.rvm/bin/ts_jekyll build --source /home/user/_repo/ --destination /home/user/public_html
Configuration file: /home/user/_repo/_config.yml
            Source: /home/user/_repo/
       Destination: /home/user/public_html
      Generating... 
                    done.
 Auto-regeneration: disabled. Use --watch to enable.
~/public_html/cgi-bin
DONE

这是我期望的输出,但网站没有更新。
当我使用 SSH 登录并运行 时user@server [~]# _repo/cgi-bin/githook.cgi,我通常会再次获得完全相同的输出,并且网站已正确更新。

如果我对本地副本进行更改,Web 钩子似乎仍然有效(即使它不应该有效),并且命令行上的版本会显示有关覆盖本地更改的适当消息。

什么原因导致这种情况发生?

相关内容