最近在公司电脑clone某些gitlab仓库的时候总会碰到下面这个报错:
fetch-pack: unexpected disconnect while reading sideband packet
这四个方法基本无效,而且我看了一下失败的仓库大小,基本都是非常小的,而且没有特别大的提交,不可能因为缓存区不足的原因。而且我还是走ssh协议,方法4基本没有用。但是方法提示了我,有没可能是ssh协议本身的问题?于是在尝试用sourcetree clone成功后确定了这个问题。 sourcetree的git是跟命令相同版本,唯一的区别就是sourcetree使用了putty/plink作为ssh的传输命令,命令行是用系统的ssh(8.1.0.0p1-beta),从scoop安装的。
遂重新安装git for windows,使用安装包自带ssh和mintty后解决。我看全网似乎没有提到跟这个相关。当然你也可以选择putty/plink作为默认的ssh,不过为了不折腾还是用推荐的选项(毕竟用的人更多)。
我甚至怀疑之前其他仓库时不时出现pull失败是跟这个ssh相关(不过现在已经没办法证实了)
PS:自带的ssh没有办法使用windows的ssh-agent确实有点麻烦,要用mintty启动ssh-agent。