[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fcYNmGj4oUeYJLfgQwfJvrbgvVuncRbvHqi6IWeH-EO4":3},{"code":4,"message":5,"data":6},200,"成功",{"id":7,"createdAt":8,"title":9,"content":10,"summary":11,"image":12,"uid":13,"user":14,"categoryId":21,"category":22,"subCategoryId":24,"subCategory":25,"comments":27,"status":17,"reason":33,"notice":33,"visitCount":38,"commentCount":17,"keywords":39},88,"2024-02-24T08:44:18.075Z","curl error: RPC failed; curl 18 HTTP/2 stream 5 was reset8.00 KiB/s","不管在什么类型的项目中，当使用git相关的pull或者clone时，有时候会遇到以下错误：\n> error: RPC failed; curl 18 HTTP/2 stream 5 was reset8.00 KiB/s\n> Early EOF\n> Expect 5032 Kib\n> \n>  或者\n>\n> error time out\n\n忘记给错误截图了，但是问题基本是那个类似是上面的报错。\n\n从上面的报错来看，其实是在curl的时候，网络disconnect或者其他类似的io出错。\n\n这个问题的出现其实就是由于网络超时导致的package没有传输完成，或者是由于缓冲区小了导致的io error。\n\n面对这样的问题，有2种思路是可以思考的。\n1. 增加git clone的时间，防止由于time out而导致的终止链接，即增大buffer。\n2. 升级curl到8.2.1以上。【**推荐先尝试这个方式**】\n\n## 1. 升级curl\n我们先来说升级curl的方式，其实在curl的github上（[https://github.com/curl/curl/issues/11353](https://github.com/curl/curl/issues/11353)）就已经有相关的issue提出来，而且作者也说了8.2.1之前的版本确实会复现这样的问题，所以很简单，直接查看本地的curl版本，如果低于8.2.1版本，那么直接去升级就好了。\n\n\n查看curl的版本：\n```\ncurl --version\n```\n![](https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-02-24%20161708763014958.png)\n\n升级本地的curl版本：\n```\nbrew install curl\n```\n注意：\n在Mac上通过brew安装的curl，有可能没有自动配置环境变量，甚至安装之后查看curl的版本，还是之前的版本。所以需要进一步配置一下环境变量。\n\n通过brew info查看刚才安装的curl：\n```\nbrew info curl\n```\n![](https://image.xinwei.ltd/Snipaste_2024-02-24_16-28-061708763303402.png)\n\n然后，按照截图的蓝色框框中的内容，配置一下环境变量：\n```终端命令\necho 'export PATH=\"/usr/local/opt/curl/bin:$PATH\"' >> ~/.zshrc\n```\n然后再检查curl的版本：\n![](https://image.xinwei.ltd/Snipaste_2024-02-24_16-30-081708763434718.png)\n\n确认版本正确之后，再去执行git相关的操作，验证是否可行。\n我自己的问题是在更新curl后得到解决。\n\n## 2. 增加git clone的时间\n很容易理解，增加clone时间其实就是希望哪怕网速再慢，也可以慢慢clone下来，而不会导致time out而链接中断。\n那么常用的设置命令是：\n```终端命令\ngit config --global http.postBuffer 157286400\n```\n这里是把缓冲区设置为150M大小，git默认的是1M。\n\n其实很多程序员对此存在争议，认为这个设置是没有必要的，但仍然有程序员通过这个设置解决了自己的问题。\n\n对于这个设置，由于我自己通过这个命令没有解决我遇到的问题，所以暂时不敢苟同。\n\n## 3. 另外还有一种解法，就是使用http/1.1而不是http/2来进行传输\n这个方式我没尝试过，但是有一定的道理，http/2的协议比http/1.1确实多了很多限制，那么更改成http/1.1，或许可以解决transfer中遇到的问题，仅作参考吧。\n\n这种方式的解法是：\n先设置：\n```\ngit config --global http.version HTTP/1.1\n```\n当执行完git相关的操作后，再设置：\n```\ngit config --global http.version HTTP/2\n```\n\n","这个问题是在使用git相关的库clone时较容易遇到的问题，给大家一个解决问题的思路。","https://image.xinwei.ltd/%E6%88%AA%E5%B1%8F2024-02-24%20161708763014958.png",499668042977349,{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":19,"createdAt":20},"13121171998","全栈老韩",1,"https://image.xinwei.ltd/images/IMG_5430.JPG","全栈工程师，擅长iOS App开发、前端（vue、react、nuxt、小程序&Taro）开发、Flutter、React Native、后端（midwayjs、golang、express、koa）开发、docker容器、seo优化等。","2024-01-01T16:14:30.305Z",2,{"id":21,"name":23},"IT技术",39,{"id":24,"name":26,"parentId":21},"软件",[28],{"id":29,"createAt":30,"content":31,"articleId":7,"userId":13,"user":32,"replyToUid":34,"replyToUser":35,"status":17,"statusDes":33,"replies":37},4,"2024-02-25T15:23:56.068Z","这里额外还有一个方法哈，就是如果你使用电脑的Wi-Fi，如果速度太慢的话，那么可以尝试链接手机热点尝试。\n对于使用双卡号的手机，尽量选择没有绑定宽带的手机号，貌似绑定宽带的手机号在使用流量时会限制网速。",{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":33,"createdAt":20},"",0,{"phone":33,"userId":34,"nickName":33,"vipType":34,"avatar":33,"sign":33,"createdAt":36},"0001-01-01T00:00:00Z",null,1711,"git,git clone,git error,git issue,git使用,git克隆,git使用"]