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

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/FETCH_HEAD文件的读访问权。我必须做“sudo chmod g+w .git/FETCH_HEAD”,以便能够做一个拉请求。

其他回答

当。git文件夹被隐藏时,其中的所有文件也被隐藏。 只隐藏.git文件夹而不更新递归文件,它将工作。

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

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

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

sudo npm run deploy

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

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

所以在总结中

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