git 推送到 GitHub 错误:在 .netrc 文件中找不到主机 github.com;使用默认值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2949128/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-10 08:29:11  来源:igfitidea点击:

Push to GitHub error: Couldn't find host github.com in the .netrc file; using defaults

gitgithubgit-push

提问by phil swenson

Dunno what's going on, no response from github on this prob so I'm asking here. Tried a git push for the first time in a month or so and got this. Turned on export GIT_CURL_VERBOSE=1 and did a push and get this:

不知道发生了什么,github 对此问题没有回应,所以我在这里问。在一个月左右的时间里第一次尝试了 git push 并得到了这个。打开 export GIT_CURL_VERBOSE=1 并进行推送并得到这个:

localhost:send2mobile_rails phil$ git push
Password: 
* Couldn't find host github.com in the .netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * Connected to github.com (207.97.227.239) port 443 (#0)
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
*    subject: O=*.github.com; OU=Domain Control Validated; CN=*.github.com
*    start date: 2009-12-11 05:02:36 GMT
*    expire date: 2014-12-11 05:02:36 GMT
*    subjectAltName: github.com matched
*    issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certificates.godaddy.com/repository; CN=Go Daddy Secure Certification Authority; serialNumber=07969287
*    SSL certificate verify ok.
> GET /303devworks/send2mobile_rails.git/info/refs?service=git-receive-pack HTTP/1.1
User-Agent: git/1.7.1
Host: github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 401 Authorization Required
< Server: nginx/0.7.61
< Date: Tue, 01 Jun 2010 10:53:13 GMT
< Content-Type: text/html; charset=iso-8859-1
< Connection: keep-alive
< Content-Length: 0
< WWW-Authenticate: Basic realm="Repository"
< 
* Connection #0 to host github.com left intact
* Issue another request to this URL: 'https://[email protected]/MYUSERHERE/send2mobile_rails.git/info/refs?service=git-receive-pack'
* Couldn't find host github.com in the .netrc file; using defaults
* Re-using existing connection! (#0) with host github.com
* Connected to github.com (207.97.227.239) port 443 (#0)
* Server auth using Basic with user '303devworks'
> GET /303devworks/send2mobile_rails.git/info/refs?service=git-receive-pack HTTP/1.1
Authorization: Basic MzAzZGVfd29sa3M6Y29nbmwzNzIw
User-Agent: git/1.7.1
Host: github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 200 OK
< Server: nginx/0.7.61
< Date: Tue, 01 Jun 2010 10:53:13 GMT
< Content-Type: application/x-git-receive-pack-advertisement
< Connection: keep-alive
< Status: 200 OK
< Pragma: no-cache
< Content-Length: 153
< Expires: Fri, 01 Jan 1980 00:00:00 GMT
< Cache-Control: no-cache, max-age=0, must-revalidate
< 
* Expire cleared
* Connection #0 to host github.com left intact
Counting objects: 166, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (133/133), done.
* Couldn't find host github.com in the .netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * connected
* Connected to github.com (207.97.227.239) port 443 (#0)
* SSL re-using session ID
* SSL connection using DHE-RSA-AES256-SHA
* old SSL session ID is stale, removing
* Server certificate:
*    subject: O=*.github.com; OU=Domain Control Validated; CN=*.github.com
*    start date: 2009-12-11 05:02:36 GMT
*    expire date: 2014-12-11 05:02:36 GMT
*    subjectAltName: github.com matched
*    issuer: C=US; ST=Arizona; L=Scottsdale; O=GoDaddy.com, Inc.; OU=http://certificates.godaddy.com/repository; CN=Go Daddy Secure Certification Authority; serialNumber=07969287
*    SSL certificate verify ok.
* Server auth using Basic with user 'MYUSERHERE'
> POST /303devworks/send2mobile_rails.git/git-receive-pack HTTP/1.1
Authorization: Basic JzAzZGV1d29ya3M6Y25nb29zNzIq
User-Agent: git/1.7.1
Host: github.com
Accept-Encoding: deflate, gzip
Content-Type: application/x-git-receive-pack-request
Accept: application/x-git-receive-pack-result
Expect: 100-continue
Transfer-Encoding: chunked

* The requested URL returned error: 411
* Closing connection #0
error: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (140/140), 2.28 MiB | 1.93 MiB/s, done.
Total 140 (delta 24), reused 0 (delta 0)
^C
localhost:send2mobile_rails phil$ 

回答by Will

I had the same issue and believe that it has to do with the size of the repo (edited- or the size of a particular file) you are trying to push.

我遇到了同样的问题,并认为这与您尝试推送的存储库的大小(已编辑或特定文件的大小)有关。

Basically I was able to create new repos and push them to github. But an existing one would not work.

基本上我能够创建新的存储库并将它们推送到 github。但是现有的一个行不通。

The HTTP error code seems to back me up it is a 'Length Required' error. So maybe it is too large to calc or greated that the max. Who knows.

HTTP 错误代码似乎支持我,它是“需要长度”错误。所以也许它太大而无法计算或超过最大值。谁知道。

EDIT

编辑

I found that the problem may be files that are large. I had one update that would not push even though I had successful pushes up to that point. There was only one file in the commit but it happened to be 1.6M

So I added the following config change

git config http.postBuffer 524288000

To allow up to the file size 500M and then my push worked. It may have been that this was the problem initially with pushing a big repo over the http protocol.

我发现问题可能是文件很大。我有一个更新不会推送,即使我已经成功推送到那个点。提交中只有一个文件,但恰好是 1.6M

所以我添加了以下配置更改

git 配置 http.postBuffer 524288000

允许最大文件大小为 500M,然后我的推送有效。这可能是最初通过 http 协议推送大型 repo 的问题。

END EDIT

结束编辑

the way I could get it to work (EDIT before I modified postBuffer) was to tar up my repo, copy it to a machine that can do git over ssh, and push it to github. Then when you try to do a push/pull from the original server it should work over https. (since it is a much smaller amount of data than an original push).

我可以让它工作的方式(在我修改 postBuffer 之前编辑)是将我的 repo tar up,将它复制到一台可以通过 ssh 执行 git 的机器,然后将它推送到 github。然后,当您尝试从原始服务器执行推/拉操作时,它应该可以通过 https 运行。(因为它的数据量比原始推送要少得多)。

Hope this helps.

希望这可以帮助。

回答by Dilip Rajkumar

I got the same issue. This is how I solved my problem.

我遇到了同样的问题。这就是我解决我的问题的方法。

  1. I increased the buffer size

    git config http.postBuffer 524288000

  2. Then I checked the users in the server and my user name was removed. So I recreated the file using following command sudo htpasswd -c /etc/users dilip_rajkumar

  1. 我增加了缓冲区大小

    git 配置 http.postBuffer 524288000

  2. 然后我检查了服务器中的用户,我的用户名被删除了。所以我使用以下命令重新创建了文件sudo htpasswd -c /etc/users dilip_rajkumar

Hope this helps some one..

希望这可以帮助某人..

回答by VonC

It looks like you are trying to push using "smart http(s) protocol", which GitHub now supports.
Let's suppose here you have no proxy issue, or firewall problem.

看起来您正在尝试使用GitHub 现在支持的智能 http(s) 协议”进行推送。 假设您没有代理问题或防火墙问题。

What is your remote upstream repo address?
(what git remote -v showlists?)

你的远程上游回购地址是什么?
(什么git remote -v show清单?)

I would recommend:

我会推荐:

    machine github.com
    login your_github_login
    password your_github_password
  • try cloning again your repo git clone https://github.com/your_github_login/gitrepo.git, and push through that instance.
  • 尝试再次克隆您的 repo git clone https://github.com/your_github_login/gitrepo.git,并推动该实例。


Note: as Noufal Ibrahimcomments, you could use ssh (unless ssh port is blocked, leaving you only with http/https connections)

注意:正如Noufal Ibrahim评论的那样,您可以使用 ssh(除非 ssh 端口被阻止,否则您只能使用 http/https 连接)

git clone ssh://user@server:project.git

回答by Ian

For those having trouble creating a new .netrc file, verify that it is in your HOME directory (cd ~/), make sure it is readable by you (chmod 600 ~/.netrc), and make sure it looks like this:

对于那些在创建新 .netrc 文件时遇到问题的人,请验证它是否在您的 HOME 目录 (cd ~/) 中,确保您可以读取它 (chmod 600 ~/.netrc),并确保它看起来像这样:

machine github.com
login yourgithublogin
password yourgithubpassword

机器 github.com
登录 yourgithublogin
密码 yourgithubpassword