我想在最近几天解决这个问题.
首先,我在代理服务器后面工作,我使用Cntlm建立连接,我尝试在我的Visual Studio Online帐户上创建一个小存储库,一切都按预期工作,我能够克隆和推送.
我创建了另一个存储库,这次更大(整个回购大约是800MB),当我试图推送时.它需要我通过身份验证周期,然后它就会挂起(我已经将它挂了24小时而没有任何反应).postBuffer正如其他地方所建议的那样,我已经将git 增加到了524288000,但这并没有帮助.
我已经设定了更多
GIT_CURL_VERBOSE=1
然后当我跑:
git push origin master -v
这是它被卡住的地方:
> POST /DefaultCollection/_git/PROJex/git-receive-pack HTTP/1.1
Authorization: Basic ZGRpbWl0cm92OkQxbxxxxxx               
User-Agent: git/1.9.2.msysgit.0                             
Host: [user].visualstudio.com                         
Accept-Encoding: gzip                                       
Content-Type: application/x-git-receive-pack-request        
Accept: application/x-git-receive-pack-result               
Content-Length: 37423253      
* Connection #1 to host localhost left intact   
我看到内容长度明显大于小型回购.我还应该注意到有500多个提交日志.
现在我认为它可能是一个代理问题,所以我在没有代理的情况下在不同的网络上尝试了它,我得到了相同的结果.除了http(s)之外的任何内容都不是我的设置中的选项.
如果推送一个所有大型仓库不是一个选项(出于任何原因),那么你可以考虑在服务器上转移一个相同的仓库捆绑,并从该捆绑包中获取(在服务器上).也就是说,如果您有权访问服务器.
由于只生成一个文件,因此转移变得更容易git bundle.
另一种选择(如果您无权访问服务器)是将您的推送拆分为几个较小的推送:
A<-B<-C<-D<-E
你可以试试:
git push origin B:master
git push origin D:master
git push origin master
每次都会推送所有提交,直到您引用的提交.
最后,最后一次推动将是增量推动,比推动一切要小得多.
| 归档时间: | 
 | 
| 查看次数: | 2935 次 | 
| 最近记录: |