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

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

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


当前回答

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

其他回答

这是一个UNIX权限问题。不要使用sudo来克隆存储库。您没有与根用户相同的ssh密钥,而且您不应该以根用户身份工作。尝试ls -la查找文件的权限,并使用chmod(或sudo chown)来修复它们。希望这能有所帮助。

对于MacOS用户(如果是High Sierra或更高版本)使用这个:

sudo chown -R $(whoami) $(brew --prefix)/*

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

rm -f .git/FETCH_HEAD

git branch -u

当您没有给予.git文件夹足够的权限时,就会出现此问题。 要解决这个问题-

首先导航到您的工作目录。 输入命令- sudo chmod a+rw .git -R

希望能有所帮助!!

这个错误的原因可能是多重的,但在我的情况下,我更新了根分支,然后当我试图更新它与普通用户它给我错误。

尝试两种解决方案,其中一种应该对你有效

1- sudo chmod g+w .git -R

如果它不工作,请尝试下一个解决方案,希望它能解决你的问题

2 - rm -f .git/FETCH_HEAD