Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >100.00 MB以上大文件导致push失败解决方法

100.00 MB以上大文件导致push失败解决方法

作者头像
徐建国
发布于 2021-08-03 06:50:49
发布于 2021-08-03 06:50:49
1.6K00
代码可运行
举报
文章被收录于专栏:个人路线个人路线
运行总次数:0
代码可运行

目录

  • 1.这不,出问题了
  • 2..厉害的小徐根据提示,执行了以下操作:
  • 3.好么,秀一波操作的时候到了
    • 需要注意的是,此处可能会报错
      • 解决方案:执行`git stash`即可解决。
  • 4. 推送修改后的repo
  • 5. 清理和回收空间

事情是这样的,三天前,老板说要聚餐,结果一开心,把白天学的资料一下子就朝仓库里放,

1.这不,出问题了

image-20200828203136807

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
remote: error: File: a8a79710125cc4f97598661f9ab44a8f735809f8 118.77 MB, exceeds
 100.00 MB.
remote: Use command below to see the filename:
remote: git rev-list --objects --all | grep a8a79710125cc4f97598661f9ab44a8f7358
09f8

2..厉害的小徐根据提示,执行了以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git rev-list --objects --all | grep a8a79710125cc4f97598661f9ab44a8f7358
a8a79710125cc4f97598661f9ab44a8f735809f8 GO/GoWeb资料.zip

查出来了原来是GO/GoWeb资料.zip这个文件大于100M了

当然,你也可以执行下列代码:,查出历史提交的最大文件。然后执行第三步

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

3.好么,秀一波操作的时候到了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch GO/GoWeb资料.zip --prune-empty --tag-name-filter cat -- --all

需要注意的是,此处可能会报错

出现这个错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cannot rewrite branches: You have unstaged changes
解决方案:执行git stash即可解决。

4. 推送修改后的repo

以强制覆盖的方式推送你的repo, 命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git push origin master --force

5. 清理和回收空间

虽然上面我们已经删除了文件, 但是我们的repo里面仍然保留了这些objects, 等待垃圾回收(GC), 所以我们要用命令彻底清除它, 并收回空间,命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm -rf .git/refs/original/
 
git reflog expire --expire=now --all
 
git gc --prune=now

彻底解决。

接下来正常提交提交即可,最后给大家再推荐一下gitee,用来保存东西,最合适不过了,就算不是学计算机的,照样可以得心应手,

最后安利一波日常使用命令

git

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 明天也要加油呀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Git 仓库瘦身与 LFS 大文件存储
熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件,且 git push 到了远程仓库,那么我们 git clone 的时候也会很慢。
Cloud-Cloudys
2023/10/21
1.1K0
Git 仓库瘦身与 LFS 大文件存储
寻找并删除Git记录中的大文件
有时候gitignore没做好,一不小心就又进来一个二进制文件 在重复了N次Google之后,还是记一下吧 首先通过rev-list来找到仓库记录中的大文件: 1 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" 然后通过filter-branch来重写这些大文件涉及到的所有提交(重写历史记录): 1 g
happy123.me
2018/06/04
3.9K0
Git 仓库体积过大,缩减记录
上图可以看到原仓库已经很大了,所以必须要清除一些仓库中没用的大文件了,每次下载仓库那个时间简直是太长了,github拉取时间太久,受不了了。
框架师
2021/11/22
6.5K0
Git 仓库体积过大,缩减记录
Git清理文件
1. 运行 gc ,生成 pack 文件 $ git gc --prune=now 2. 找出最大的三个文件 $ git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -3 # 输出: 4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 657413784 136436872 5330845 4d2ae4c4413740d81019aa65691a2f75f00a5d3b blob 6574
用户10325771
2023/03/01
4960
Git目录为什么这么大
本文围绕git的目录过大,从git进行版本控制底层存储出发,简要分析Git目录过大的原因,以及如何处理
仙人技术
2021/08/31
1.4K0
Git目录为什么这么大
10.7 Git 内部原理 - 维护与数据恢复
有的时候,你需要对仓库进行清理 - 使它的结构变得更紧凑,或是对导入的仓库进行清理,或是恢复丢失的内容。 这个小节将会介绍这些情况中的一部分。
shaonbean
2019/05/26
9150
Git GC命令清理Git暂存区
Git 会不定时地自动运行称为 “auto gc” 的命令。大部分情况下该命令什么都不处理。不过要是存在太多松散对象 (loose object, 不在 packfile 中的对象) 或 packfile,Git 会进行调用 git gc 命令。 gc 指垃圾收集 (garbage collect),此命令会做很多工作:收集所有松散对象并将它们存入 packfile,合并这些 packfile 进一个大的 packfile,然后将不被任何 commit 引用并且已存在一段时间 (数月) 的对象删除。
框架师
2021/03/08
7.3K0
Git 维护及数据恢复
你时不时的需要进行一些清理工作 ── 如减小一个仓库的大小,清理导入的库,或是恢复丢失的数据。本节将描述这类使用场景。
看、未来
2022/05/06
6890
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
地址后面有一个括号里面有 push 和 fetch 两种,当我们执行 git push 时候他会调用对应 push 地址,同样当我们执行命令 git featch 的时候则会调用 fetch 地址;当拉去代码之后默认情况下会产生一个远程仓库 origin ,并 且对应的 push 地址也只有一个
咸鱼学Python
2021/07/16
6260
Git入门学习到进阶3
但是在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了。
全栈工程师修炼指南
2022/09/28
6010
Git入门学习到进阶3
删除Git仓库中的大文件
Git是用来管理源代码的一个工具,很多时候,我们不想让Git来跟踪较大的二进制文件。但是如果不小心将某个文件加入到Git的缓存区后,不管后面怎么删除这个大文件,Git始终都保存有这个文件的历史记录,因此项目会很大。拿下面例子来说,我们有个500M的文件cnn.model,通过下面的命令加入到git暂存区或提交到远端(提交时自动执行git gc命令,生成pack文件):
王云峰
2019/12/25
6.4K1
常见Git命令汇总
最近,有朋友私信让我就git 使用做篇文章分享,分享一下我在日常工作中是如何使用git的。我当场就收费两包辣条,最后讨价还价,朋友用1.5包辣条骗到了这篇文章,等他欣喜的走了我打算直接分享出来,气死这个吝啬鬼,当然最终还是希望本文对你有所帮助。
BlueSocks
2022/04/02
6390
常见Git命令汇总
学习git常用及高阶命令
几个常用的git命令情景 复制代码仓库 git clone --bare|--mirror|--non-bare /var/www/html/myrepo.git 后悔药 覆盖最后一次修改 git add . git commit --amend git push origin master -f Git 放弃本地修改 git checkout . && git clean -df Git 销毁最后一次提交 git reset --hard HEAD^ git push -f origin HEAD^:ma
卡少
2018/05/16
8640
偶然发现Git文件夹非常大,使用BGF来处理Git历史Blob文件
我们使用Git来管理项目的时候,可能会提交一些Blob的二进制文件,这些文件并不能像文本文件一样采用diff delta的形式进行版本控制。如果这些文件一直跟随master的主版本,那么就是属于有效的文件。
WindRunnerMax
2025/05/22
1540
清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明)
你可能接触过 git-filter-branch 来清理 git 仓库,不过同时也能体会到这个命令使用的繁琐,以及其超长的执行时间。
walterlv
2023/10/22
9260
Git内部原理介绍
git 是一个内容寻址的文件系统,其核心部分是一个简单的键值对数据库(key-value data store),可以向该数据库插入任意类型的内容,它会返回一个40位长的哈希键值。并在此基础上提供了一个版本控制系统的用户界面。
腾讯工蜂
2018/12/07
17.3K1
如何存储 Git 大文件?
作者:terryshchen,腾讯 IEG 应用开发工程师 本文主要讲解在 Git 仓库中如何管理大的二进制文件,详细介绍了什么是 Git LFS,Git LFS 是如何工作的,以及如何使用 Git LFS。 本文翻译自 Atlassian 官方介绍 Git LFS 的文章,Atlassian 是 Git LFS 的主要开发者之一,这篇介绍 Git LFS 的文章比较权威,讲的也很详细。原文地址: https://www.atlassian.com/git/tutorials/git-lfs 本
腾讯技术工程官方号
2020/06/09
4.1K0
Git 实用指南
Git 是一个分布式的版本控制工具,因此远程和本地可以视为两个独立的 Git 仓库。上图是一张经典的 Git 中的数据流与存储级别的介绍,其中储存级别主要包含几部分:
grain先森
2019/05/06
7030
Git 实用指南
从9G到0.3G,腾讯会议对他们的git库做了什么?
过去三年在线会议需求井喷,腾讯会议用户量骤增到3亿。快速迭代的背后,腾讯会议团队发现:业务保留了长达5年的历史数据,大量未进行 lfs 转换,新 clone 仓库本地空间占17.7G+。本地磁盘面临严重告急,强烈影响团队 clone 效率。当务之急是将仓库进行瘦身。本栏目特邀腾讯会议的智子研发团队成员李双君,回顾腾讯会议客户端的瘦身历程和经验,欢迎阅读。
腾讯云开发者
2023/08/03
1.1K0
从9G到0.3G,腾讯会议对他们的git库做了什么?
Git Pro深入浅出(三)
前面已经阐述了Git基本的运作机制和使用方式,介绍了许多Git提供的工具来帮助你简单且有效地使用它。本部分将演示如何借助Git的一些重要的配置方法和钩子机制,来满足自定义的需求。
奋飛
2019/08/15
9740
相关推荐
Git 仓库瘦身与 LFS 大文件存储
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验