请帮帮我,我正试着在我的终端上运行:
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
帮助我,我不明白这个问题。
答案 0 :(得分:161)
似乎第一个不起作用,因为您的用户没有更改该目录的权限,第二个因为您的root用户没有正确的SSH密钥来访问该git存储库。
根据您要执行的操作,最好将存储库克隆到其他目录,或者chown
当前目录可以为您的用户提供完全访问权限
答案 1 :(得分:131)
检查.git/
目录上是否有足够的权限。你应该有写权限。您可以使用以下命令设置它们。
转到项目文件夹:
chown -R youruser:yourgroup .git/
答案 2 :(得分:36)
如果您想向该群组授予权限,
sudo chmod g+w .git -R
最适合我。
对于MacOS
sudo chmod -R g+w .git
答案 3 :(得分:28)
这是UNIX权限问题。不要使用sudo来克隆存储库。你根本没有相同的ssh密钥,你也不应该以root身份工作。尝试使用ls -la查找文件的权限,并使用chmod(或sudo chown)来修复它们。希望有所帮助。
答案 4 :(得分:17)
这个问题的答案确保.git / FETCH_HEAD具有写入权限,您将全部设置。
我在Windows上遇到过这个问题,它通过提供写权限来解决。
在unix中,可以从项目存储库运行chmod a+rw .git/FETCH_HEAD
,之后它应该可以运行。
答案 5 :(得分:14)
在我的情况下工作正常:
rm -f .git/FETCH_HEAD
答案 6 :(得分:11)
尝试这样,
第1步:首先检查一下你是谁?它将返回当前用户名,例如 ubuntu
$ whoami
第2步:然后为当前用户设置权限,在这种情况下, ubuntu
sudo chown -R ubuntu .git/
答案 7 :(得分:11)
就我而言,我只能读取.git / FETCH_HEAD文件的读取权限。我必须做" sudo chmod g + w .git / FETCH_HEAD"为了能够做拉取请求。
答案 8 :(得分:8)
我在Windows上遇到了第一个问题(FETCH_HEAD权限被拒绝)。
我通过以管理员身份运行Git Bash来修复它(右键单击,以管理员身份运行)。
答案 9 :(得分:7)
如果您尚未将自己添加到拥有.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/FETCH_HEAD
期间写信给git pull
你的>>> mylist = [[1,2,3], ['a', 'b', 'c'], [5, 8, 10], [100, 200, 30]]
>>> zip(*mylist) # In Python 3.x, this returns an iterator instead of a list
[(1, 'a', 5, 100), (2, 'b', 8, 200), (3, 'c', 10, 30)]
>>> tuple(zip(*mylist))
((1, 'a', 5, 100), (2, 'b', 8, 200), (3, 'c', 10, 30))
。
答案 10 :(得分:4)
运行Windows 7,当我遇到这个问题时,那是因为我隐藏了.git文件夹。权限很好,它只是隐藏。显示文件夹解决了它。
答案 11 :(得分:3)
git中没有更多权限被拒绝错误。
答案 12 :(得分:2)
查看.git
目录的所有者和组(首先转到.git的父目录)ll .git
,查看目录的组和所有者,
将您的用户添加到拥有sudo usermod -a -G yourusername groupsofonwner
的所有者群组,然后注销=>登录和一切工作。
所以在夏天
转到git的父目录
$cd your path
找到.git
direcotry
$ll .git
将您的用户添加到该群组
$usermod -a -G yourusername ownergroupofgit
注销并登录系统以使此更改生效。
享受它;)
答案 13 :(得分:2)
隐藏.git文件夹并且其中的所有文件也被隐藏时出现此问题。 只有.git文件夹隐藏,没有递归文件更新,它将工作。
答案 14 :(得分:2)
此错误的原因可能是倍数,但在我的情况下,我用root更新了分支,然后当我尝试用普通用户更新它时,给了我错误。
尝试两种解决方案都应该对您有用
1- sudo chmod g+w .git -R
如果它不起作用,请尝试下一个解决方案,希望它可以解决您的问题
2 - rm -f .git/FETCH_HEAD
答案 15 :(得分:2)
只需转到您的根文件夹并运行以下命令:
chmod a+rw .git/FETCH_HEAD
答案 16 :(得分:1)
在为Windows使用git扩展时,我收到了此消息。我的修复是简单地关闭git扩展然后再以管理员身份打开
答案 17 :(得分:1)
通过运行命令为当前用户设置权限
$ sudo chown -R <username> .git/
答案 18 :(得分:1)
这将解决文件夹中的所有权限
sudo chown -R $(whoami) ./
答案 19 :(得分:1)
我有完全相同的错误,但就我而言,问题是升级到PHP版本后重建Apache的结果。长话短说,我忘了安装Apache模块'suexec'。
与组或所有权无关。仅仅花了我两天的时间,有人就枪杀了我...
答案 20 :(得分:0)
当我在做 bundle install
时,我得到了:
Following files may not be writable, so sudo is needed:
/Library/Ruby/Gems/2.6.0
/Library/Ruby/Gems/2.6.0/bin
/Library/Ruby/Gems/2.6.0/build_info
/Library/Ruby/Gems/2.6.0/bundler
/Library/Ruby/Gems/2.6.0/cache
/Library/Ruby/Gems/2.6.0/doc
/Library/Ruby/Gems/2.6.0/extensions
/Library/Ruby/Gems/2.6.0/gems
/Library/Ruby/Gems/2.6.0/specifications
Fetching gem metadata from https://rubygems.org/.........
error: cannot open .git/FETCH_HEAD: Permission denied
我按照 here 中的步骤操作并更新了我的 bash_profile
以添加 rbenv
垫片。
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
但出于某种未知的原因,我将它们注释掉了。取消注释后,我就能够成功运行 bundle install
。
答案 21 :(得分:0)
这里有很多答案,很多建议做一个chown。
对我来说,将用户更改为拥有文件夹的用户(在我的情况下为tomcat)要容易得多,因为允许所有者写:
sudo su tomcat
并且比做
git pull
无需更改权限。我之所以喜欢这样,是因为我不必记住在完成操作后将权限更改回去。
要查找拥有该文件夹的用户,请执行ls -la
注意:请勿授予非sudo写入服务的文件夹的权限!
答案 22 :(得分:0)
对于MacOS用户(如果是High Sierra或更高版本),请使用以下命令:
sudo chown -R $(whoami) $(brew --prefix)/*
答案 23 :(得分:0)
就我而言,我有一个双引导系统(Windows 10和Linux),其NTFS磁盘上有项目文件夹。事实证明,在另一个由Windows 10本身启用的更新中,其设置“快速启动”。 在Windows中取消选中它后-Linux中的“错误:无法打开.git / FETCH_HEAD:权限被拒绝”。
答案 24 :(得分:0)
当您对.git文件夹没有足够的权限时,会出现此问题。 为了解决这个问题-
输入此命令-
sudo chmod a + rw .git -R
希望它会有所帮助.. !!
答案 25 :(得分:0)
就我而言,
sudo chmod ug + wx .git -R
此命令有效。
答案 26 :(得分:0)
如果在Windows服务器中发现相同的问题,则需要以足够的权限(例如管理员权限)运行命令行。
答案 27 :(得分:0)
我得到了这个,因为我的盒子上有超过1个用户帐户。我以用户A身份登录,并且位于用户B的目录中。用户A没有权限使用用户B的内容。一旦我意识到我不在我认为我在文件系统中,这个错误是有道理的。
答案 28 :(得分:-1)
TL; DR:在双启动系统中,关闭Windows的快速启动
我在双启动Ubuntu / Windows系统中遇到此问题。我无法在与Windows共享的任何分区(NTFS分区)中写入任何内容。
我最近重新安装了两者,却忘记了在Windows中打开“快速启动” 。在Windows中重新启动并关闭该功能并重新启动后,一切恢复正常。
答案 29 :(得分:-1)
在我的情况下,该工作:我只是在命令前写了sudo
:
sudo npm run deploy