从git记录中删除大文件

article/2025/6/19 2:50:08

git push error

大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件。以后不管是拷贝,还是push/pull都比较麻烦。今天将工程上传到github时,发现最大只能上传100MB大小文件,在本地git库中有一个260MB文件,虽然已经删除,但还保存了记录。下面教大家如何从库中彻底删除无效大文件。


  • 1.查看git空间使用

    git count-objects -v
    git空间使用情况
    其中size-pack就是.git的大小,单位字节。

  • 2.查看大文件是什么

    git verify-pack -v .git/objects/pack/pack-83eb93d4ad82019ee070697931cab9bb59fab7c4.idx | sort -k 3 -n | tail -3
    大文件列表

    简单说明:
    * 指令是git verify-pack -v xxx.idx,所以你需要定位到idx目录
    * sort -k 3 -n 按照第三列即文件大小列排序
    * tail -3  列举出前三条
    
  • 3.我们可以看到86d73c这个文件很大,下一步找到它是什么

    git rev-list --objects --all | grep 86d73c
    大文件名称

  • 4.将该文件从历史记录的所有 tree 中移除

    git log --pretty=oneline --branches – platforms.zip

  • 5.用 filter-branch 命令重写所有 commit 才能将文件从 Git 历史中完全移除

    git filter-branch -f --prune-empty --index-filter ‘git rm --cached --ignore-unmatch -fr platforms.zip’ – --all
    执行结果

  • 6.现在历史记录中已经不包含对那个文件的引用了。不过 reflog 以及运行 filter-branch 时 Git 往.git/refs/original 添加的一些 refs 中仍有对它的引用,因此需要将这些引用删除并对仓库进行 repack 操作。在进行 repack 前需要将所有对这些 commits 的引用去除。

    rm -Rf .git/refs/original
    rm -Rf .git/logs/
    git gc

至此结束。

清理结果





知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。


http://chatgpt.dhexx.cn/article/5TpVIDpO.shtml

相关文章

git基本操作(入门级)

写在前面:初次接触git,便想到之前工作,下载跨平台通信库ACL的源代码时的gitHub,于是便借助互联网弄清楚了它们的区别(不过仅供参考)。 关于Git和github区别的参考地址:http://blog.csdn.net/qq_…

一篇文章,让你彻底学会Git

文章目录 1. 版本控制1.1 常见的版本控制工具1.2 版本控制分类1.3 Git与SVN的主要区别 2. Git介绍1.1 Git 功能特点1.2 Git 和 GitHub 的区别 2. Git 环境配置2.1 软件下载2.2 启动Git2.3 Git配置2.3.1 设置用户名与邮箱 3.Git基本理论3.1 三个区域3.2 工作流程 4. Git 项目搭建…

Git-如何写好一条提交信息

Git-如何写好一条提交信息 本文为翻译文章 原文: How to Write a Git Commit Message 作者: cbeams 1.为什么好的提交信息很重要 如果你曾经打开过任意一个Git仓库的提交历史,你可能会发现它们的提交信息多多少少会有些混乱。 请比较下面两个…

GIT的相关内容

概述 git是一个版本管理工具,它是用于管理对应的代码的版本的。它是一个集中式的代码管理工具(支持分布式)。相同的软件还有svn(集中式版本管理工具,它不具备分布式的功能) svn及git的区别 了解git及svn的区别 Git是分布式的,SVN是集中式的Git复杂概念多,SVN简单易上…

长达万字的git常用指令总结(适合小白及在工作中想要对git基本指令有所了解的人群)建议收藏

本篇文章将对git在工作和学习中需要用到的大部分常用指令作详细解答, 觉得有用的C友们可以点个赞支持一下,你们的支持就是我最大的动力~ 本文总结自廖雪峰老师的文档 欢迎大家关注我的公众号:Smooth前端成长记录 公众号同步更新CSDN博客内容…

Git入门到实战

一、Git 基础 1、什么是Git Git是一个分布式版本控制系统。 版本控制系统是一种用于记录一个或多个文件内容变化,方便我们查阅特定版本修订情况的系统。 示例: 以前在没有使用版本控制的时候,我们通常在我们的项目根目录下这样命名项目&am…

git操作笔记

查询git命令 $ git --help 概述 Git是开源的分布式版本控制系统,git可以有效、高速地处理从很小到非常大的项目版本管理。 git 瘦身 解决 .git文件夹过大的问题, .git文件主要用来记录每次提交的变动,当我们的项目越来越大的时候&#xff0…

Git相关使用

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…

cmd命令安装python第三方库_Python如何安装第三方库

Python如何安装第三方库 [版权申明] 非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/cdpxc/article/details/108808780 出自:cdpxc 注:笔者是在D盘直接安装了Anaconda (https://www.anaconda.com/)并非直接安装的Python (https://www.python.org/downloads/)…

基于区块链的数字版权保护介绍

一、数字版权定义: 各类出版物、信息资料的网络出版权,可以通过新兴的数字媒体传播内容的权利。包括制作和发行各类电子书、电子杂志、手机出版物等的版权。 各国家对于数字版权作品的定义不一。以中国为例,主要数字版权作品包括以电子图书、…

2018年博客之星,需要您宝贵的一票!

很荣幸入选了CSDN博客之星候选,既然入选了,那么我还是想全力以赴!虽然比不上其他大佬那么优秀,但还是希望大家多多支持! 请投 003 号:LovelyBear2019 一票 投票地址 https://bss.csdn.net/m/topic/blog_…

方波中的毛刺

在FPGA设计中,经常要对外部输入的信号捕捉上升沿。 在某些设计中,外部输入信号为方波信号,由比较器输出。 如上图,比较器输出方波后,电路设计欠佳,产生抖动,下降沿产生毛刺,如果FPG…

html版权登记怎么打,版权符号怎么输入_Html版权符号怎么打

版权符号怎么输入 版权符号©的4种输入方法 版权符号©有很多种方法可以实现,如下: ??1、按住Alt键不放,然后输入169。松开Alt键后,就可以打出©号来,此法只适合于Win2000或Win2000以上的版本。(特别注意:输入的这些数字必须使用键盘右边的那些数字键才有效…

面试官让我聊聊jmeter性能全流程测试,我忍不住哭了

做性能测试的步骤 1、服务器性能监控 首先要在对应服务器上面安装性能监控工具,比如linux系统下的服务器,可以选择nmon或者其他的监控工具,然后在jmeter模拟场景跑脚本的时候,同时启动监控工具,这样就可以获得jmeter…

JMeter压测常见面试问题

1、JMeter可以模拟哪些类型的负载? JMeter可以模拟各种类型的负载,包括但不限于Web应用程序、API、数据库、FTP、SMTP、JMS、SOAP / RESTful Web服务等。这使得JMeter成为一个功能强大且灵活的压力测试工具。 2、如何配置JMeter来进行分布式压力测试&a…

首网推荐!自动化测试——频次最高的23道jmeter面试题及答案!

全B站仅此一家!Jmeter接口测试,学到就是赚到! 1、解释什么是JMeter? JMeter是一款Java开源工具,用于性能负载测试。它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。 2、说明JMeter的工作原理&#xff1f…

面试题---jmeter

面试中遇到的问题: 1. 如何使用Jmeter进行并发测试 2. 如何设置并发量为1000 3. 如果http请求每个都不一样,如何配置 4. 如何设置sessionID 一、安装配置 1. 在Terminal中输入命令: ruby -e "$(curl -fsSL https://raw.githubuse…

9月最新Jmeter面试题

1、Jmeter的关联用到了哪些方法去实现 接口的响应结果通常为 html 和 Json 格式的数据,主要会用到正则提取器、Json 提取器、Xpath 器以及边界值提取器,还有 beanshell 来进行数据的提取。 对于 html 这种响应结果我们通常会用正则或者是 Xpath 来进行…

jmeter面试题及答案(jmeter接口自动化测试面试题)

JAVA面试试题 是啊,java程序开发是吗? 如果自己以前学过编程的话,应该知道考这的话,就是一些基础的语法知识,然后给一个运用性的来让你编程和调试程序。你应聘的是哪个职业,要想清楚的,到迅雷上面可以下载很多很多,推…

软件测试jmeter面试问题,jmeter 面试题剖析实战

最近有个学生反馈,自己在面试的时候,遇到一个 jmeter 题目,要我帮忙看下,题目如下: 进入http://www.weather.com.cn/网站,用jmeter编写脚本实现如下操作(下列要求在同一个测试脚本) : (1)编写获取北京天气紫…