git RPC失败:从对等体接收数据时出现curl 56故障

kpbwa7wx  于 2023-04-19  发布在  Git
关注(0)|答案(3)|浏览(573)

我刚刚在Azure上创建了一个小型的企业存储库(2个分支中的每个分支1次提交,总共大约200 MB的存储库),然后我删除了本地存储库。当我试图将其克隆回本地机器时(我假设代理可能是这里的一个问题),我得到:

RPC failed: curl 56 failure when receiving data from the peer.

(但是,如果这很重要的话,我也看到100%的对象被接收,100%的增量被解决。)我是一个非常遥远的GIT用户,但我已经找到了一种方法来做所谓的repo的浅克隆。

问题为:我是否正确地克隆了repo?(到目前为止似乎是的,但下面的命令在理论上看起来有效吗?):

git clone URL --depth=1 
git remote set-branches origin '*'
git fetch -v --depth=1

**问题2.**我仍然不明白错误curl 56的问题是什么..有什么想法吗?**P.S.**是否可以将压缩的repo从远程下载到本地机器,然后以某种方式将解压缩的目录链接到远程(上游)?

ix0qys7i

ix0qys7i1#

此错误消息表示您的机器无法从远程端接收所有数据。可能是另一端挂断或连接中断;如果没有更多的信息,真的不可能说。
如果你使用的是代理服务器,那么是的,这很可能是问题所在。不幸的是,代理服务器,防病毒程序,非标准防火墙,和TLS MITM盒都倾向于篡改连接,它们可能是Git这个问题的最大原因。这些问题都是由于这个软件不正确地篡改了连接,Git无法修复。您应该将此情况报告给网络管理员,并要求他们删除或修复代理(最好是前者),或者您可以使用没有代理的网络。
下载一个压缩文件夹,然后从那里填充Git仓库是不可能的。Git存储了项目的整个历史,并通过协商确定它需要什么,哪些提交是双方共同的。没有办法从zip文件的内容中获得其中的一个提交,所以你没有共同的提交,你必须发送所有的东西。
将一个仓库克隆为浅仓库,然后将其非浅仓库的常用方法是:

$ git clone --depth=1 https://github.com/git/git.git
$ cd git
$ git fetch --unshallow origin
yr9zkbsy

yr9zkbsy2#

更新HTTP POST缓冲区值

git config --global http.postBuffer 1048576000
w46czmvw

w46czmvw3#

我最近在一个企业代理下工作时遇到了同样的问题。'git clone'对于小型仓库很好用,但对于大于100MB的仓库就不行了。公认的答案是最好的解决方案。如果你正在寻找解决方案,你可以通过SSH使用'git clone'。

git clone git@ssh.dev.azure.com:v3/my-account/git

查看Microsoft文档以设置SSH密钥:https://learn.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops
然后,您可以通过以下方式将远程存储库从HTTPS更改为SSH:

git remote set-url origin git@dev.azure.com/my-account/git

相关问题