17

不知道怎么回事,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://303devworks@github.com/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$ 
4

4 回答 4

17

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

基本上我能够创建新的存储库并将它们推送到 github。但是现有的将无法正常工作。

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

编辑

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

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

git config http.postBuffer 524288000

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

结束编辑

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

希望这可以帮助。

于 2010-08-31T02:01:35.383 回答
8

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

  1. 我增加了缓冲区大小

    git config http.postBuffer 524288000

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

希望这对某人有帮助..

于 2012-07-09T09:14:18.523 回答
5

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

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

我会推荐:

    机器github.com
    登录 your_github_login
    密码 your_github_password
  • 尝试再次克隆您的 repo git clone https://github.com/your_github_login/gitrepo.git,并推动该实例。

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

git clone ssh://user@server:project.git
于 2010-06-01T11:44:25.917 回答
1

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

机器github.com
登录你的github登录
密码你的github密码

于 2011-07-26T15:09:26.417 回答