git.exe pull --progress -v --no-rebase "origin" master remote: Counting objects: 178404, done. remote: Compressing objects: 100% (74558/74558), done. Connection reset by 192.168.2.252 port 22 fatal: early EOF fatal: The remote end hung up unexpectedly fatal: index-pack failed
遇到这个问题我第一时间就是百度,并且迅速定位到了其中一个解决方案:
后面追加“compression=-1” 或者 “postBuffer=524288000”
compression 是压缩的意思,从 clone 的终端输出就知道,服务器会压缩目标文件,然后传输到客户端,客户端再解压。取值为 [-1, 9],-1 以 zlib 为默认压缩库,0 表示不进行压缩,1..9 是压缩速度与最终获得文件大小的不同程度的权衡,数字越大,压缩越慢,当然得到的文件会越小。
postBuffer是指缓存,将缓存设置的尽量大,例如git config --global http.postBuffer 524288000 (500M)
输入:
git clone https://example.com/example/example.git compression=-1 git clone https://example.com/example/example.git postBuffer=524288000
执行上面命令之后,发现问题依然存在
于是我又继续探索,很快找到了另一个解决方案:(也是抱着试一试的态度,没想到却可以了)
描述:当使用git clone 产生这个问题的时候,在第一次克隆的时候,把克隆深度设置为1
git clone https://example.com/example/example.git --depth 1
总结:第一个方案或许也是可行的,由于影响因素比较多,没能解决我当下问题,但并不代表不能解决你的问题,当然,如果你的问题第一个方法也解决不了,你可以用我提供的第二个解决方法
补充:后面又遇到这个问题,当我直接使用第二种解决方法的时候,发现问题依旧,但当我用完第一种方法再用第二种方法,结果正常。因此,可能由于我文件过大,需要先设置压缩再设置深度。
以上为个人看法,仅供参考。