GitHub git push超过100MB大文件失败(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远程仓库中

1
git push

4、最后如果发现还是无法提交可以使用git命令撤回commit提交,找到超过100MB的文件进行删除

#查询提交日志,获取提交head
git log

#
撤销commit到指定的版本,本地修改的文件不会变动
git reset --soft 77e3f9eb02b96d7d2ea5def048fb4f1d07f19868

找到你提交的文件中超过100MB的文件进行删除,然后重新添加,提交即可。

 

解决方案二

安装 Git 大文件存储(Git LFS)

什么是LFS?

  Git LFS(Git Large File Storage),即Git大文件存储技术,相当于Git的一种插件式增强工具,简单讲,它是在Git仓库使用这些文件的 指针代替 实际文件,而把实际文件存储在远程端LFS服务器,同时在本地仓库中实时追踪这些文件的变动。

1、下载Git Large File Storage(Git LFS)

Git LFS Windows Installer

2、在您的计算机上,找到下载的文件双击安装

  双击名为git-lfs-windows-1.XXexe 的文件,其中 1.XX 替换为您下载的 Git LFS 版本。当你打开这个文件时,Windows 会运行一个安装向导来安装 Git LFS。

3、打开Git Bash,验证安装是否成功

1
2
$ git lfs install
> Git LFS initialized.

4、将您当前的工作目录更改为您希望与 Git LFS 一起使用的现有存储库

5、要将存储库中的文件类型与 Git LFS 关联,请输入git lfs track后跟要自动上传到 Git LFS 的文件扩展名的名称

例如,要关联.psd文件,请输入以下命令:

1
2
$ git lfs track "*.psd"
> Adding path *.psd

您想与 Git LFS 关联的每种文件类型都需要添加git lfs track此命令修改存储库的.gitattributes文件并将大文件与 Git LFS 关联。

提示:我们强烈建议您将本地.gitattributes文件提交到您的存储库中。依赖与 Git LFS 关联的全局.gitattributes文件可能会在为其他 Git 项目做出贡献时导致冲突。 

6、将文件添加到与您关联的扩展名匹配的存储库

1
$ git add path/to/file.psd

7、提交文件并将其推送到 GitHub

1
2
$ git commit -m "add file.psd"
$ git push

您应该会看到相关文件上传的进度信息:

1
2
3
> Sending file.psd
> 44.74 MB / 81.04 MB 55.21 % 14s
> 64.74 MB / 81.04 MB 79.21 % 3s

参考文章

https://docs.github.com/en/repositories/working-with-files/managing-large-files/installing-git-large-file-storage

https://gitee.com/help/articles/4235#article-header0

 

posted @   追逐时光者  阅读(5875)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2018-12-11 Visual Studio高效实用的扩展工具、插件
点击右上角即可分享
微信分享提示