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

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

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


当前回答

我得到这个,因为我有一个以上的用户帐户在我的盒子。我以用户A的身份登录,在用户B的目录中。用户A没有权限访问用户B的东西。当我意识到我不在文件系统中的位置时,这个错误就有意义了。

其他回答

如果您还没有将自己添加到拥有.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之前注销并重新登录。

在我的情况下,工作很好后:

rm -f .git/FETCH_HEAD

git branch -u

就我而言,

sudo chmod ug+wx .git -R

此命令有效。

在我的案例工作中,我只是在命令之前写了sudo:

sudo npm run deploy

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