请帮助我,我试图在我的终端运行这个:

asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

那我试试这个

asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

帮帮我,我不明白这个问题。


当前回答

就我而言,

sudo chmod ug+wx .git -R

此命令有效。

其他回答

我遇到了完全相同的错误,但在我的情况下,这个问题是在升级到PHP版本后重新构建Apache的结果。长话短说,我忘了安装Apache模块“suexec”。

这与集团或所有权无关。我只用了两天就想明白了,有人朝我开枪…

使用实例设置当前用户的权限

$ sudo chown -R <用户名> .git/

如果您还没有将自己添加到拥有.git/的组中,那么您应该这样做。

sudo usermod -a -G $(stat -c '%G' .git) $USER
sudo chmod g+u .git -R
sudo chmod g+u .gitignore
su - $USER

它的作用:

找出拥有.git/的组,并将用户添加到该组。 确保组成员具有与.git/的所有者相同的权限。 为.gitignore重复此操作,您可能需要它 登出并重新登录,以刷新组成员文件权限

如果你最近做了类似的事情(将自己添加到拥有.git/的组中),那么你需要在git拉取期间能够写入.git/FETCH_HEAD之前注销并重新登录。

我的问题是Ubuntu命令行。

在以root用户登录后,我设法解决了这个问题。

sudo su
git pull

删除.git文件中的FETCH_HEAD将解决这个问题。