• git克隆/拉取报错过早的文件结束符(EOF)的原因及解决


    遇到了过早的文件结束符EOF时不要着急,我们来看看怎么解决

    导言

    近期使用git拉取仓库的时候,拉取了好几次都不行,总是反馈说过早的文件结束符

    fatal: 过早的文件结束符(EOF)
    fatal: 无效的index-pack输出
    

    总是这样,当然我的报错信息并没有描述完整,因为在我检索此类问题的时候,我发现有好多种所谓的过早的文件结束符这样的报错,但是细节部分描述不太一致。

    问题情景1

    比如说,我的完整报错信息是这样的:

    client_loop: send disconnect: Broken pipe | 9.00 KiB/s
    fetch-pack: unexpected disconnect while reading sideband packet
    fatal: 过早的文件结束符(EOF)
    fatal: fetch-pack: 无效的 index-pack 输出
    

    关键信息在前两行,前两行告诉我们发生了某种断开连接, 9.00 KiB/s应该是表示网络速率,因此可以确定,发生这个问题的原因属于网络部分,本机连接仓库服务器时网络不稳定 我把无线网络更换为手机分享的热点之后,再次尝试,问题解决。所以遇到这个问题的时候,要么切换成4G热点或者其他网络,要么可以等待一段时间再尝试。

    问题情景2

    我还看到另一种,我们来看完整的报错信息:

    error: RPC failed; curl 12 tranfer closed with outstanding read data remaining.
    fatal: The remote end hung up unexpectedly
    fatal: 过早的文件结束符(EOF)
    fatal: index-pack失败
    

    关键信息是第一行的curl,出现这个关键词,基本可以确定是由于远程仓库中存在过大的文件,我们可以扩大一下传输限制

    开启git bash,然后输入 git config --global http.postBuffer 1048576 * 10。当然了,你在设置http的postBuffer值时要参考你的仓库文件大小,我上面 1048576010MB的大小限制,满足最大文件的大小即可,除此之外还有另一种方法,可以在资源管理器 > 用户 > $YOUR_NAME > .gitconfig 中右键编辑此文件,添加如下内容:

    [http](如果没有http这个分类需要添加此行,有的话直接在分类下追加)
         postBuffer = 10485760
    

    然后保存,重新拉取,问题解决。

    总结

    由此可见,出现报错时,仔细阅读、分析并理解报错信息是极为重要的,如果你没看明白,一定要多读几次,只有读懂了关键信息,才能在下次遇到的时候,得知你们曾经见过面。

  • 相关阅读:
    postgres 如何把多行数据,合并一行,返回json字符串
    linux 安装中文字体(生成图片中文乱码解决)
    postgis 自相交数据检测 修复
    C# Winform程序如何获取运行路径, 控制台也可以
    Excel: Access is denied
    change the theme in VS2005 or VS2008
    接下来的一点计划
    wordwrap, breakword
    T SQL + 正则表达式
    神奇的Css + DIV,滚动的Grid
  • 原文地址:https://www.cnblogs.com/cyancoco/p/16094153.html
Copyright © 2020-2023  润新知