尝试git pull with error:无法打开.git/FETCH_HEAD:权限被拒绝

Art*_*lev 191 git pull github

请帮助我,我想在我的终端中运行它:

asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied
Run Code Online (Sandbox Code Playgroud)

然后我试试这个

asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

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

aby*_*byx 179

似乎第一个不起作用,因为您的用户没有更改该目录的权限,第二个因为您的root用户没有用于访问该git存储库的正确SSH密钥.

根据您要执行的操作,最好将存储库克隆到其他目录,或者可能chown是当前目录以便为您的用户提供完全访问权限

  • 这种情况经常发生在你意外忘记你已经运行`sudo su`并且你在回购中扮演root角色时.在该目录中一个简单的`sudo chown -R <username> .`可以实现魔法! (8认同)
  • 只需授予当前目录的读写权限即可。就是这样!'sudo chmod 777 amt/-R' (2认同)

Ren*_*hle 136

检查您是否对.git/目录有足够的权限.你应该有写权限.您可以使用以下命令设置它们.

转到项目文件夹:

chown -R youruser:yourgroup .git/
Run Code Online (Sandbox Code Playgroud)

  • 它应该是`chown -R youruser .git /` (40认同)

Won*_*Bae 42

如果您想向该组授予权限,

sudo chmod g+w .git -R
Run Code Online (Sandbox Code Playgroud)

最适合我.

对于MacOS

sudo chmod -R g+w .git 
Run Code Online (Sandbox Code Playgroud)


Joh*_*oma 28

这是UNIX权限问题.不要使用sudo来克隆存储库.您没有与root用户相同的ssh密钥,因此无论如何都不应该以root用户身份运行.尝试使用ls -la查找文件的权限,并使用chmod(或sudo chown)来修复它们.希望有所帮助.


pg2*_*286 18

这个问题的答案确保.git/FETCH_HEAD具有写权限,您将全部设置.

我在Windows上遇到过这个问题,它通过提供写权限来解决.

在unix中,可以chmod a+rw .git/FETCH_HEAD从项目存储库运行,之后它应该工作.


shi*_*ovk 16

在我的情况下工作正常后:

rm -f .git/FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)


Alw*_*nny 15

试试这种方式,

第1步:首先检查一下你是谁?它将返回当前用户名,例如ubuntu

$ whoami 
Run Code Online (Sandbox Code Playgroud)

第2步:然后设置当前用户的权限,在这种情况下,ubuntu by

sudo chown -R ubuntu .git/
Run Code Online (Sandbox Code Playgroud)


Ray*_*Ray 11

就我而言,我只能读取.git/FETCH_HEAD文件的读取权限.我不得不做"sudo chmod g + w .git/FETCH_HEAD"以便能够执行拉取请求.


hob*_*obs 9

如果您还没有将自己添加到拥有的组中.git/,那么您应该这样做.

sudo usermod -a -G $(stat -c '%G' .git) $USER
sudo chmod g+u .git -R
sudo chmod g+u .gitignore
su - $USER
Run Code Online (Sandbox Code Playgroud)

这是做什么的:

  1. 找出哪个组拥有.git/并将您的用户添加到该组.
  2. 确保组成员具有与所有者相同的权限.git/.
  3. 重复这个.gitignore,你可能需要
  4. 将您注销并重新登录以刷新您的组成员身份文件权限

如果你刚刚做了类似这样的事情(将自己添加到拥有的团队中.git/),那么你需要先退出并重新登录才能.git/FETCH_HEAD在你的写作期间写信git pull.


Nic*_*tby 8

我在Windows上遇到了第一个问题(FETCH_HEAD权限被拒绝).

我通过以管理员身份运行Git Bash来修复它(右键单击,以管理员身份运行).


Pab*_*rdo 8

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

sudo chown -R $(whoami) ./
Run Code Online (Sandbox Code Playgroud)


jdf*_*jdf 6

运行 Windows 7,当我遇到这个问题时,是因为我隐藏了 .git 文件夹。权限很好,只是被隐藏了。显示文件夹解决了它。


小智 6

只需转到您的根文件夹并运行以下命令:

chmod a+rw .git/FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)


小智 6

Set permission to your current user by running the command

$ sudo chown -R <username> .git/


Eli*_*Eli 5

sudo chmod -R 777 .git或者如果您只想为自己添加 rw 权限,您可以使用sudo chmod -R +rw .git