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

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 chown -R <用户名> .git/

其他回答

这将解析文件夹中的所有权限

sudo chown -R $(whoami) ./

我的问题是Ubuntu命令行。

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

sudo su
git pull

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

在我的情况下,我有一个双启动系统(Windows 10和Linux),项目文件夹在NTFS磁盘上。事实证明,在另一次更新中,Windows 10在其设置中启用了“快速启动”。 在我在Windows中未选中它之后- Linux中的“错误:无法打开.git/FETCH_HEAD:权限被拒绝”消失了。

如果你想给小组权限,

sudo chmod g+w .git -R

对我来说是最好的。

是操作系统

sudo chmod -R g+w .git