git无法打开.git / FETCH_HEAD

时间:2015-03-16 09:06:58

标签: git github permissions centos

我有CentOs。我制作了git并成为了所有者的.git文件夹组" gitdevelopers"。在小组" gitdevelopers"添加User1和User2。现在我从user1和user2进行git-push和git-pull更改。但是,计算机中的用户无法处理错误:

git.exe pull -v --no-rebase --progress" origin" 错误:无法打开.git / FETCH_HEAD:权限被拒绝

为什么?

p.s.:我可以通过x-shell使用login-password user1和user2连接到服务器。

几个小时后:: 我认为问题在于没有正确的登录密码,git记得。

p.p.s:git save login-password pair?我使用ssh-protocol。

p.p.p.s.:OK。我有git的服务器CentOs。在服务器上是两个用户。我使用TortoiseGit for windows。我这样配置:在每个连接系统中询问连接到服务器的登录名和密码。现在我想知道:1。保存这个登录密码的地方2.我可以永久保存这对吗?

7 个答案:

答案 0 :(得分:7)

这对我有用

sudo chown -R $(whoami) .git/

答案 1 :(得分:2)

error: cannot open .git/FETCH_HEAD: Permission denied

是我遇到的第一个错误之一。

也许你已经知道,但由于没有更改/查看该目录的权限,可能会发生这种情况。

想法是改变权限,也许使用:

chmod

chown

我在Trying to git pull with error: cannot open .git/FETCH_HEAD: Permission denied找到了更多答案。

答案 2 :(得分:1)

您可以检查文件的权限,

  

ls -l /usr/local/Library/Taps/linode/cli/.git/FETCH_HEAD

  

ls -l /usr/local/.git/FETCH_HEAD

答案 3 :(得分:0)

生成新的SSH密钥对

ssh-keygen -o -t rsa -b 4096 -C "email@domain.com"

将SSH密钥添加到您的GitLab帐户

Copy your public SSH key to the clipboard and paste it into your user account >  SSH Keys 

对于身份验证,您需要在〜/ .ssh / config中将配置设置为以下内容;

Host domain.com

Hostname domain.com

User git

Port 30001

Preferredauthentications publickey

RequestTTY no

IdentityFile ~/.ssh/id_rsa

您可以将命令用作; 在这些命令中提到的常见变量,请替换这些变量的相关值。

创建新的存储库

git clone ssh://git@domain.com:port-number/user-name/project-name.git

cd project-name

touch README.md

git add README.md

git commit -m "add README"

git push -u origin master

推送现有文件夹

cd existing_folder

git init

git remote add origin ssh://git@domain.com:port-number/user-name/project-name.git

git add .

git commit -m "Initial commit"

git push -u origin master

推送现有的Git存储库

cd existing_repo

git remote rename origin old-origin

git remote add origin ssh://git@domain.com:port-number/user-name/project-name.git

git push -u origin --all

git push -u origin --tags

要克隆存储库:

git clone https://git@domain.com:port-number/user-name/project-name.git

答案 4 :(得分:0)

这对我有用:

sudo chown -R $ USER: name_repo

注意: 在我的情况下,我已经用root用户克隆了存储库,然后开始使用另一个用户

答案 5 :(得分:0)

删除现有解决方案并执行git clone为我解决了这个问题

答案 6 :(得分:-1)

如果您正在使用ubuntu,请在前面使用sudo关键字。

sudo git pull

如果您使用的是Windows,请使用管理员模式