gpt4 book ai didi

Git push 为大型仓库挂起

转载 作者:太空狗 更新时间:2023-10-29 13:35:56 24 4
gpt4 key购买 nike

最近几天我一直在努力解决这个问题。

首先,我在代理后面工作,我使用 Cntlm 设置了一个连接,我尝试在我的 Visual Studio Online 帐户上创建一个小型存储库,一切都按预期工作,我能够克隆和推。

我创建了另一个存储库,这次更大(整个存储库大约 800MB)并且当我尝试推送时。它让我完成了身份验证周期,然后它就挂起了(我让它挂了 24 小时,什么也没发生)。我已按照其他地方的建议将 git 的 postBuffer 增加到 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

我看到内容长度明显大于小型 repo。我还应该注意到有一个 500+ 的提交日志。

现在我认为这可能是代理问题,所以我在不同的网络上不使用代理进行了尝试,但得到了相同的结果。除 http(s) 之外的任何内容都不是我的设置中的选项。

最佳答案

如果推送所有大 repo 不是一个选项(出于任何原因),那么您可以考虑转移 bundle 服务器上的同一个 repo 协议(protocol),并从该包中获取(在服务器上)。也就是说,如果您有权访问服务器。

transfer is made easier by the fact a git bundle only generates one file .


另一种选择(如果您无权访问服务器)是将您的推送分成几个较小的推送:

A<-B<-C<-D<-E

你可以试试:

git push origin B:master
git push origin D:master
git push origin master

每次,这会将所有提交推送到您引用的那个。
最后,最后一次推送将是增量推送,比推送所有内容要小得多。

关于Git push 为大型仓库挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23988660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com