Git:致命错误:无法从远程仓库读取

623

我想要使用http://danielmiessler.com/study/git/#website来管理我的网站,现在正尝试设置git。

按照指示,我已经完成了最后一步:git push website +master:refs/heads/master。

我在win7中使用git ming32命令行进行工作。

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

这里可能存在一个问题,即程序正在寻找Bill@***.com。当我通过ssh连接到我的站点时,我的用户名不同(假设为“abc”)。因此,也许应该是abc@***.com。如果是这样的话,我不知道如何更改,或者是否可以使用别名推送。


2
我曾经遇到过同样的问题,有时候出现这个错误是因为git服务器无法访问或者出现了“内部服务器错误”之类的问题。 - Morteza
6
请先查看.git/config文件,确保一切都是正确的。对我来说,它的set-url和origin值是错误的。 - mixdev
在我的情况下,我不得不关闭我的WiFi并重新打开它。其他互联网服务都可以使用,包括fast.com,但由于某种原因,GitHub的操作无法正常工作。 - Joshua Pinter
这篇文章提供了很多答案。对于我同时使用工作和个人Git帐户的SSH问题,这篇文章解决了我的问题。https://www.freecodecamp.org/news/manage-multiple-github-accounts-the-ssh-way-2dadc30ccaca/ - Stephane
在我的情况下,我输入了错误的远程URL。该错误与SSH身份验证失败无法区分。 - John Jiang
显示剩余8条评论
62个回答

2

我曾经遇到过同样的问题,后来发现我是以root用户身份登录的(使用sudo -s命令)。希望这能对某些人有所帮助。


我确认,即使您已在计算机和BitBucket上设置了ssh密钥,如果尝试使用'sudo'命令执行'git pull',仍会显示此错误。 - ElectroBuddha

2
我在Windows 10上使用gitbash时遇到了这个问题。我尝试了几种方法来解决这个问题,其中主要的方法如下:
  1. 重新创建我的ssh密钥并更新到bitbucket。没有帮助
  2. 使用这个打开调试,发现我得到了"shell request failed on channel 0",就像这里所问的那样。
  3. 重新启动了我的Windows电脑
以上方法都没有帮助。最终我选择重新安装Git for Windows。这只花了几分钟时间,相比其他方法,它解决了这个问题!

1
为什么我两天前没看到你的回答?我已经花费太多时间来修复这个问题了.... :( - Max

2

针对我的情况,我在办公室使用公司网络(没有互联网连接)。为了从Github上拉取代码,我在gitbash中设置了https代理,然后使用https而不是ssh来拉取代码,这样就可以正常工作。但是在推送代码时,https代理无法工作。因此,要么切换到有互联网连接的互联网网络,要么设置ssh代理即可解决问题。


2
如果您正在一个GitHub组织/团队中工作,您可能没有对存储库的写权限。不幸的是,git不会显示更具体的权限错误。在我的情况下,我正在私有存储库上工作,并被赋予“分类”或“读取”访问权限。
有关每个权限级别的存储库访问权限的更多信息,请参见GitHub文档
在GitHub上更改此链接的代码为https://github.com/orgs/ORGANISATION_NAME/teams/TEAM_NAME/repositories,在那里你可以更改分配给团队的权限。

Screenshot of github organisation's team's repository's tab


1
我偶尔会遇到这个问题,大多数情况下不会出现错误信息。我的解决方法是在LDAP服务器IP地址更改后正确配置LDAP。 /etc/gitlab/gitlab.rb中的LDAP配置指向不存在的IP地址,将主机更改为正确的LDAP服务器主机名即可解决问题。
要诊断问题,请使用gitlab-ctl tail命令帮助您查找堆栈跟踪。我发现了这个堆栈跟踪:
==> /var/log/gitlab/gitlab-rails/production.log <==

Net::LDAP::Error (No route to host - connect(2) for 10.10.10.12:389):
  /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap/connection.rb:72:in `open_connection'
...

请在/etc/gitlab/gitlab.rb文件中修改主机值。

gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
   main: 
     label: 'My LDAP'
     # this was an IP address
     # host: '10.10.10.12'
     host: 'internal-ldap-server' # this is the fix
     port: 389

在修改上述配置文件后,请务必重新配置GitLab。

gitlab-ctl reconfigure

1
如果您设置了 recievepackuploadpack,在我的情况下,我设置它们时错误地出现了错误。
receivepack = powershell git receive-pack

在我的情况下,在.git/config文件中

您可以按以下答案将它们删除

https://stackoverflow.com/a/26207308/7668448

或者直接修改.git/config


1

对于那些在私有远程仓库遇到此问题的人,请确保您已经在远程服务器上接受了Xcode协议:我们花了几周时间才找到这个解决方法。

使用以下命令行命令:sudo xcodebuild -license


1
我遇到了同样的错误,这让我找到了这个回答,但并没有帮助到我。 我正在尝试使用以下命令创建一个新的“裸”存储库,以便跟踪到NTFS位置:
cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status

我的问题是在尝试将(新的)跟踪上游分支添加到 origin 时,在 NTFS 位置中使用反斜杠而不是正斜杠。我必须使用以下命令删除 origin:
git remote rm origin

然后使用预期的正斜杠再次添加源

git remote add origin //myserver.mycompany.local/myrepository.git

希望这能在未来帮助到某人。

1
在更换电脑后,我使用SourceTree和Bitbucket出现了这个错误。因此,在连接到我的Bitbucket帐户并打开网页时,我需要在Bitbucket设置>安全>SSH密钥中添加由SourceTree生成的SSH密钥。请注意保留HTML标签。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接