"sudo -u www-data git pull" 凭据保存?

"sudo -u www-data git pull" Credential Saving?

我的 apache2 网络服务器目录作为 Git 目录,所以当我和我的团队成员(学校项目)对我们的 GitHub 文件夹进行更改时,它可以很容易地被 运行ning 'git pull' in putty.

我想通过在其中包含“<?php exec("git pull"); <?”的“pull.php”文件来自动执行此操作(使用 WebHook)。

但是,我在php运行whoami函数时出现的用户是“www-data”。
为了允许 www-data 到 运行 git pull 而无需输入凭据(我尝试设置 SSH 但它拒绝工作),我需要允许他们存储凭据。

这是有问题的,因为与其他用户不同,www-data/home/accountname 中没有目录可以将其 .gitconfig 保存到。

如何让“git credential.helper store”为 www-data 工作?

我也不介意使用 SSH,但是我 运行 遇到了同样的问题,其中保存 id_rsa 文件的默认目录说 permission/does 不存在,所以我希望回答上一个问题。

编辑:最后是各种问题。它试图使用 HTTPS 进行拉取,因为我使用 HTTPS 克隆了它。长话短说,我最终删除了回购并使用 SSH 重新克隆它,我所有的问题都消失了。中间有很多步骤,但任何有类似问题的人都可以这样做,而不会头疼哈哈。

您在 WordOps/WordOps #305

中遇到了类似的问题

www-data user cannot write anything in /var/www because this directory's owner is root. So you can create the .gitconfig file as root, and then change owner and permissions (following this recommendation) with

chown www-data:www-data /var/www/.gitconfig
chmod 644 /var/www/.gitconfig.

Or you can change /var/www directory owner (chown www-data /var/www) to allow www-data to create files in this directory.

OP ChristianWagner 确认使用 SSH 而不是 HTTPS 克隆存储库允许 git pull 工作。