彻底删除git中的较大文件(包括历史提交记录)

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析 本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。 阅读详情
AI摘要

本文介绍了一种从Git项目中完全删除大型文件及其历史记录的方法,包括使用filter-branch命令来修改提交信息,以实现彻底删除,最后强制推送到远程仓库。

场景

适用于从一个git项目中,将体积较大的资源彻底从git中删除,包括历史提交记录。

如果仅仅在目录中删除一个文件是不够的,只要在提交记录中有这个文件,那么 .git 中就会有这个文件的信息。

用 filter-branch 可以强制修改提交信息,将某个文件的历史提交痕迹也抹去,就像从来没有过这个文件一样。

做法

0、确保本地仓库是最新版本。

1、在项目根目录下运行

git rev-list --all | xargs -rL1 git ls-tree -r --long | sort -uk3 | sort -rnk4 | head -10

列出所有仓库中的对象(包括SHA值、大小、路径等),并按照大小降序排列,列出TOP 10。

$ git rev-list --all | xargs -rL1 git ls-tree -r --long | sort -uk3 | sort -rnk4 | head -10
100644 blob 71ac1de8ee83566cca68f69d54acd82b9abf607d 7701044    "attr_matching/\346\240\207\346\263\250\346\226\207\344\273\266Win\346\216\222\345\272\2171-54000.xlsx"
100644 blob d610f01bc315becaaa1c6d04772689d80ad4d010 7532106    "attr_matching/\346\240\207\346\263\250\346\226\207\344\273\266Win\346\216\222\345\272\2171-58000.xlsx"
100644 blob 72b8fd2eeb1c951a7f680e6f4031fa57d643ebe1 5717635    personal_label_project/personal_label_ocr/result/matrix.csv
100644 blob 89363c480afb229b5df4e2f6a6a951fdebca5ce2 5501428    cloth_attribute_classification/nohup_1103.out
100644 blob 7cdba6a4e584a49dcab693111a90f2bdb0030a3c 5392316    sheos_category_classification/nohup_gpu_category_33_0.out
100644 blob 84149a46904f87495df4896698ca5dd6fb53bdf3 5226094    cloth_attribute_classification/nohup_1105.out
100644 blob c77db27ae9fbb5450586daa3c9622766d7a4a9bc 5151535    attr_matching/OCR_result_correct.txt
100644 blob 58e4647427c443a44fbc66d584f6bda21b7c9036 2785190    image_check/out_tmp/nohup_5w_test_sheos.out
100644 blob 58e4647427c443a44fbc66d584f6bda21b7c9036 2785190    image_check/out_tmp/nohup_50000_sheos.out
100644 blob 58e4647427c443a44fbc66d584f6bda21b7c9036 2785190    image_check/nohup_5w.out

2、根据最大文件的路径 {filepath},修改此文件的commit历史:

git filter-branch --tree-filter "rm -f {filepath}" -- --all

3、强制提交到远程分支:

git push -f --all

4、完成。可以重新下载项目,列出所有仓库中的对象,看是否还存在刚刚删除的文件。

如何在Dify中安装运行pandas、numpy库(离线、在线均支持,可提供远程指导) pandas和numpy这两个库是数据科学和数据分析中经常使用的工具包,原生的Dify无法直接使用这两个库,需要手动安装后才可以使用。本文将介绍如何在Dify中安装pandas和numpy,并在代码执行节点中运行使用pandas和numpy。Dify的代码执行节点中的python逻辑,实际是运行在Dify沙盒中的,因此我们在沙盒中安装pandas和numpy就可以了。如果您有在Dify中添加pandas、numpy的应用需求,欢迎关注作者进行交流。 阅读详情

相关推荐

openEuler Embedded新增软件包及在线安装软件方法

openEuler Embedded是基于Yocto构建的嵌入式操作系统,默认不包含dnf/apt软件包管理器,主要使用rpm格式。新增软件需通过manifest文件检查是否集成,未集成则需适配新配方。对于在线安装需求,可采用轻量级容器方案:通过isulad运行openEuler服务器版容器镜像,在容器内使用dnf命令安装软件(如Nginx),实现服务器生态兼容。部署前提包括设备支持、存储空间(≥10GB)和网络连接,需先安装并启动isulad服务。这种方法结合了嵌入式系统的轻量化特性和服务器系统的软件管理

专注嵌入式开发与 Linux 系统应用实战,分享芯片驱动、设备调试、系统工具开发干货。 1225

GIT 卸载干净(图文详解)

一、找到GIT CMD ,右键点击卸载 二、以上会跳转到控制面板,在控制面板上卸载 三、点击 <是>,进行卸载 四、等待卸载过程 五、在环境变量,把相关信息删除干净

小郑在路上 5万+

Zotero+Obsidian+Bookxnote联动让文献阅读丝滑般体验

摘录文字或图片到Obsidian

weixin_43694742的博客 1万+

Git删除误提交的大文件历史记录

Git删除历史记录中的大文件(已提交得记录) 废话不多说,直接上方法 1.列出所有仓库中的对象(包括SHA值、大小、路径等),并按照大小降序排列,列出TOP 20: $ git rev-list --all | xargs -rL1 git ls-tree -r --long | sort -uk3 | sort -rnk4 | head -20 执行结果: 100644 blob 266fa1f45993b2ff569d237c15603b78bb5b4516 97895533 "r..

qq_26443509的博客 3886

避坑指南:CentOS7.9安装Python3.8.16后yum报错的快速修复方法

本文详细解析了在CentOS7.9系统安装Python3.8.16后导致yum报错的原因,并提供了快速修复方法。通过修改yum配置文件指向Python2解释器,以及使用alternatives工具管理多版本Python,有效解决兼容性问题。同时推荐使用虚拟环境隔离开发环境,避免影响系统稳定性。

weixin_26908317的博客 494

【Zotero】《纯操作讲解,GPT配置,Zotero标注可视化》- 知识点目录

Temperature分布在。之间,越低输出越稳定;

墨门 3396

git大文件记录清除解决方案

git大文件记录清除解决方案

墨鸦的博客 7013

3线SWD接线终极指南:用Jlink调试非3.3V设备的5个关键细节

本文详细解析了使用Jlink调试非3.3V设备时,3线SWD接线的5个关键细节。核心在于正确理解并连接Vref引脚以实现电压适配,避免供电冲突,并掌握精简接线法与固件修复技巧。文章以STM32F205等芯片为例,指导开发者安全、高效地进行混合电压调试。

e4f5g6h7的博客 437

使用 git 过滤器分支重写提交历史记录

使用 git 过滤器分支重写提交历史记录

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1275

PentAGI自动渗透测试平台搭建与使用

但是PentAGI的缺陷也比较明显,一个是自动化程度高带来过程的介入困难,整个渗透的过程都交给AI自动决策,无法进行人工调整,耗时较长;从上述过程来看PentAGI似乎是一个比较“可用”的AI自动化渗透测试平台,但是在继续等待测试的过程中,PentAGI的一些缺点也暴露了出来,一个是测试的过程非常漫长,因为PentAGI是使用配置大模型API key的方式全自动运行,支持openai、deepseek等主流LLM大模型,过程中不需要人工介入,会不断自动调整,所以比较依赖于大模型本身的响应速度。

墨痕诉清风的博客 2402

Transformer-LSTM预测 | 基于Transformer-LSTM的多变量单步时间序列预测(Matlab)

Transformer-LSTM预测 | 基于Transformer-LSTM的多变量单步时间序列预测(Matlab)

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 191

彻底清除git所有历史提交记录使其为“新”库

彻底清除 git 仓库的所有历史提交记录(包含分支和标签)的解决方案,以及用bat(dos)批处理脚本简化操作。

第七宇林的博客 2万+

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

《Autosar_MCAL高阶配置》总目录_培训教程持续更新中...

「汽车电子助手」的博客 1万+

Git 删除提交\commit的log记录、修改历史提交消息、删除历史提交、修改所有提交的邮箱地址、从所有提交中删除一个文件

Git使用小结git教程推荐删除历史提交log记录(合并提交)情景如下操作步骤修改历史提交消息删除历史提交修改所有提交的邮箱地址从所有提交中删除一个文件 git教程推荐 折腾git,被git折腾,还是保持够用就好的原则

LeoForBest的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Git删除历史记录(已提交)中的大文件

场景 官网项目的官网介绍的视频文件,最初是直接引入本地路径调试的,由于运维还没有生成在线地址给我们,后来提交代码到仓库中去的时候忘记在 .gitignore文件配置,导致把这个视频文件提到了git历史记录了。话不多说,下面是具体的操作步骤。 步骤如下: 首先,我们需要通过命令找出我们Git提交记录中的大文件。 我们需要删除的视频文件,确定是最大的文件,所以我们只需找出排名前 1 的 pack 记录...

全栈攻略 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

从 git 的历史记录中彻底删除文件或文件夹

如果你对外开源的代码中出现了敏感信息(例如你将私钥上传到了仓库中),你可能需要考虑将这个文件从 git 的历史记录中完全删除掉。 本文介绍如何从 git 的历史记录中彻底删除文件或文件夹。 第一步:修改本地历史记录 彻底删除文件: git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch walterlv...

walterlv - 吕毅 9905

git删除历史提交记录

git操作技巧 ** 我们在git操作过程中,如果遇到push某个log有问题,要删除此记录,怎么办?请看下文。** 清除Github提交历史记录,回到某个commmit 1、git reset --hard 176e9657476dd465476788551dc7e774ce29e2db 2、git push origin HEAD --force 大功告成~ git 远程删除某个文件 1....

ioth5的博客 1842

Git删除远程某个历史提交记录

在开发中经常会遇到在本地测试的代码或者隐私信息,一不小心提交到了远程仓库,即便立即删除了再提交,但是上次的提交记录在远程依旧可以查看。 特别是像账号密码、key文件这种,很可能造成隐私泄露。...

天问博客-专注于大前端技术 6317

git 删除历史提交中的某个文件,包含所有记录,过滤所有记录

git 删除历史提交中的某个文件,包含所有记录,过滤所有记录 问题描述 有时候,我们需要删除历史记录中的某个文件。 比如在你开发一个项目的时候,刚开始是闭源的,里面可能包含一些比较敏感的信息,用户名和密码等,后来想将这个项目开源了,但这些用户名和密码的配置文件已经存在于 git 历史中,这时候就需要用到这个功能 解决办法 StackOverflow 解答参阅:https://stackoverflow.com/a/52643437/8086267 实现这个目标,需要用到 git 的 filter-bra

学习笔记 2210

Git如何彻底删除文件或文件夹(包括历史记录)

Git如何彻底删除文件或文件夹(包括历史记录) 一 确定要删除的文件名或文件夹名 1.1 删除文件 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch pom.xml' --prune-empty --tag-name-filter cat -- --all 1.2 删除文件夹 git filter...

lalala323的博客 4549

Git彻底删除历史记录中大文件

Git中的大文件使用rm 删除是不够的,与此同时这些大文件的存在会导致整个 git 仓库的容量暴增,影响每次 clone 和 fork 代码仓库的时间。件被删除了,但是还剩下个空的提交,就查了下 man 文档,找到了这个选项。通过 git verify-pack 命令查看 pack 文件包的相关详细信息,通过文件大小进行排序,这里只列出5个最大的文件。–msg-filter表示修改提交信息,原提交信息从标准输入读入,新提交信息输出到标准输出。在日志中查找这个文件。

小熊的专栏 5412

[Git]删除历史提交记录

问题描述 说起来这个功能平时基本用不上,谁会没事把自己的历史记录清空掉?但是像这种情况: 这里之所以这么多提交,是因为复刻了别人的仓库且作为镜像,很多提交记录也随之迁移到gitlab上面。 且: 这个功能就可以有一定的作用了。 操作流程 1.检出工程 $ git clone git@172.18.20.41:cloud-platform/myproject.git Cloning into...

从前有座无庙山 1593

怎么使用Git远程删除某个历史提交记录

这篇文章主要介绍“怎么使用Git远程删除某个历史提交记录”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Git远程删除某个历史提交记录”文章能帮助大家解决问题。引言 在开发中经常会遇到在本地测试的代码或者隐私信息,一不小心提交到了远程仓库,即便立即删除了再提交,但是上次的提交记录在远程依旧可以查看。 特别是像账号密码、key文件这种,很可能造成隐私泄露。 分两种情况:一、删除最后一次提交 这种情况比较简单,主要操作分两步:第一步:回滚上一次提交 第二步:强制

BTYE的博客 5093

git删除相关历史提交记录,相关文件保持当前状态

     git删除相关历史提交记录,相关文件保持当前状态 引言   新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜。这不实战类型的博客记录又开始了!当然实战类型的博客,肯定是有相关的实际需求才会诞生的,这里我们来简单复盘一下实际需求的诞生和由来! 场景一: 原来我们有一个私有的仓库不对外开放,当开发到一定程度的时候,希望对外开放,在准备开发前当然得检查一番不是,但是在检查的时候,我们误提交了某些隐私文件(肯定不是朋友们想的那种隐私了啊,莫多想。这里的隐私可能牵涉到密码啊,

IT先森 2882

git删除指定提交记录

在 Git 中删除指定的提交记录可以通过几种不同的方法来实现,具体取决于你的需求和上下文。

Ace_Lilylv的博客 4768

《玩转Git》[进阶篇6]:删除 Git 中的历史记录

Git删除历史记录的摘要 删除Git历史记录通常用于清除敏感信息、优化冗余提交或缩减仓库体积,但需谨慎操作,避免影响团队协作。常见场景包括: 敏感信息泄露:如密码、密钥等; 历史记录冗余:无意义的临时提交影响可读性; 仓库过大:历史大文件占用空间; 合规要求:需彻底删除特定数据。 操作方法: 备份仓库:避免不可逆损失; 轻量改写:git reset删除最近提交; 深度清理:使用BFG Repo-Cleaner或git filter-repo清除文件历史; 强制推送:git push -f覆盖远程记录(需团队

专注大数据、云计算、人工智能、机器人领域技术传播 1394
上一篇: Leetcode算法——72、编辑距离(edit distance)
下一篇: 将本地文件导入到Hive表中(支持 TEXTFILE 、ORC 等存储格式)
HappyRocking
博客等级 码龄12年 222粉丝 176原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值