git push大文件失败(write error: Broken pipe)完美解决

问题

  在使用git push推送大文件(超过了100MB)到GitHub远程仓库时提示异常,异常信息如下:

fatal: sha1 file ‘<stdout>’ write error: Broken pipe

fatal: the remote end hung up unexpectedly

通过查阅了一些资料,我发现是因为GitHub对提交的文件大小做了限制,GitHub会阻止超过100 MB的推送(单文件),检查了一下我提交的文件中有一个超过200MB的文件。

GitHub官方说明👉

解决

1、将本地 http.postBuffer 数值调整到GitHub服务对应的单次上传大小配置:

注意:我这里设置的是500MB(大家可以根据自己的需要设置)。

http.postBuffer默认单位为B,所以500MB=1024*1024*500。

# 方法一:全局配置
git config --global http.postBuffer 524288000

或者

# 方法二:当前仓库配置
git config http.postBuffer 524288000

 

2、查看 http.postBuffer数值是否设置成功:

# 查看当前的Git配置
git config --list

 

 

3、最后在重新使用git push推送代码到GitHub远程仓库中