GitHub git push超过100MB大文件失败(write error: Broken pipe)完美解决

简介: 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官方说明👉

1336199-20211211223933483-730942906.png

解决方案一

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

1336199-20211211225658019-1771710753.png

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

git push

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

#查询提交日志,获取提交head
git log
#撤销commit到指定的版本,本地修改的文件不会变动
git reset --soft 77e3f9eb02b96d7d2ea5def048fb4f1d07f19868

1336199-20220108115532254-2058532861.png

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

1336199-20220108115647631-1775563768.png


解决方案二

1336199-20220108122858801-2101462611.png

安装 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,验证安装是否成功

$ git lfs install
> Git LFS initialized.

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

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

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

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

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

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

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

$ git add path/to/file.psd

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

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

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

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


相关文章
|
1月前
|
开发工具 git
git push 提交后撤回--图文详解
git push 提交后撤回--图文详解
16 1
|
1月前
|
缓存 Shell 开发工具
git 基本 使用和.gitignore文件不生效
git 基本 使用和.gitignore文件不生效
19 0
|
2天前
|
开发工具 git
【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件
【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件
11 5
|
2天前
|
缓存 网络安全 开发工具
【尝试】域名验证:配置github二级目录下的txt文件
【尝试】域名验证:配置github二级目录下的txt文件
9 2
|
2天前
|
安全 网络安全 开发工具
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
7 2
|
4天前
|
开发工具 git
Git项目如何配置,如何上传至GitHub。其详细步骤
Git项目如何配置,如何上传至GitHub。其详细步骤
8 0
|
14天前
|
存储 开发工具 git
|
15天前
|
Linux API 开发者
【专栏】掌握`curl`能提升开发效率和解决问题的能力
【4月更文挑战第28天】本文介绍了如何使用`curl`命令从GitHub下载文件。基础操作包括获取文件的克隆URL,打开终端输入`curl -O <file_clone_url>`,执行命令以下载文件。文章还提及了代理设置、认证和错误处理等高级应用,帮助开发者更高效地管理代码和资源。掌握`curl`能提升开发效率和解决问题的能力。
|
18天前
|
开发工具 数据安全/隐私保护 C++
vs2019中同步到github上的用户名错误_控制面板和vs的git全局设置重新登录
vs2019中同步到github上的用户名错误_控制面板和vs的git全局设置重新登录
17 0
|
19天前
|
开发工具 git
【git】如何删除git远程仓库上的文件
【git】如何删除git远程仓库上的文件
15 1