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

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目录的属主和所属组(首先进入。git的父目录)ll .git,查看目录的属主和所属组, 使用sudo usermod -a -G yourusername groupsofonwner将您的用户添加到所有者的组,然后登出=>登录和一切工作。

所以在总结中

进入git的父目录 $cd你的路径 找到.git目录的组所有者 $ ll . 将您的用户添加到该组 $usermod -a -G你的用户名ownergroupofgit 注销和登录系统后生效。 好好享受吧!)

其他回答

如果您还没有将自己添加到拥有.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上有第一个问题(FETCH_HEAD权限被拒绝)。

我以管理员身份运行Git Bash(右键单击,以管理员身份运行)来解决这个问题。

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

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

rm -f .git/FETCH_HEAD

git branch -u

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

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

希望能有所帮助!!