git进阶|03-如何彻底删除git中的大文件(代码片段)

Mculover666 Mculover666     2022-10-21     155

关键词:

一、问题描述

当使用git管理了一个大文件的时候,如果将该文件从文件系统删除之后再commit到仓库,这个时候仓库中依然有该文件的记录。

这样会导致.git仓库一直比较大,所以,如果确保不会回退到之前的版本了,那么可以将该大文件彻底从提交记录中删除。

二、解决方案

(1)查看当前5个大文件

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk 'print$1')"

(2)将某个大文件从提交记录中移除

git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch 大文件名' --prune-empty --tag-name-filter cat -- --all

(3)彻底删除

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now

(4)查看.git目录大小

du -h -d 1 .git
高性能云服务器 精品线路独享带宽,毫秒延迟,年中盛惠 1 折起

如何删除在 git 中错误提交的大文件 [重复]

】如何删除在git中错误提交的大文件[重复]【英文标题】:HowdoIremoveabigfilewronglycommittedingit[duplicate]【发布时间】:2011-12-2608:45:46【问题描述】:可能重复:HowtopurgeahugefilefromcommitshistoryinGit?我做了一件愚蠢的事。想象一下,我提... 查看详情

git如何删除历史记录中的大文件详解

参考技术A步骤一: 从你的资料库中清除文件以Windows下为例(Linux类似),打开项目的GitBash,使用命令: $gitfilter-branch--force--index-filter'gitrm--cached--ignore-unmatchpath-to-your-remove-file'--prune-empty--tag-name-filtercat----all其中, path-to-y... 查看详情

记一次删除git记录中的大文件的过程

app/test/target/#查看大文件gitrev-list--objects--all|grep"$(gitverify-pack-v.git/objects/pack/*.idx|sort-k3-n|tail-5|awk‘{print$1}‘)"#删除大文件或者目录gitfilter-branch--force--index-filter‘gitrm-rf--cached--ignore 查看详情

记一次删除git记录中的大文件的过程(代码片段)

记一次删除Git记录中的大文件的过程最近在开发一个新应用,有一天在gitlab上clone代码的时候发现我的应用竟然有170+M,明明是一个全新的应用,代码都没有几行呢,为什么会有这么大呢?后来经过了解Git的原理,解决了这个问... 查看详情

删除由 git 创建的大型 .pack 文件

...合并,然后不得不删除它们,现在我留下了一个我不知道如何摆脱的大.pack文件。我使用gitrm-rfxxxxxx删除了所有文件,还运行了--cached选项。谁能告诉我如何删除当前位于以下目录中的大型.pack文件:.git/obj 查看详情

markdown从git的中彻底删除大文件(代码片段)

查看详情

text删除意外提交给git的大文件(代码片段)

查看详情

如何从 git 存储库中删除文件而不实际删除文件 [重复]

】如何从git存储库中删除文件而不实际删除文件[重复]【英文标题】:Howtoremoveafilefromgitrepositorywithoutdeletingthefileactually[duplicate]【发布时间】:2012-02-2319:46:16【问题描述】:可能重复:Git:Removeafilefromtherepositorywithoutdeletingitfromtheloc... 查看详情

#git大文件清理

...库,则可以处理了大文件后,直接提交到仓库。Git+Gerrit如何永久删除历史文件(大文件/私密文件)寻找并删除Git记录中的大文件 查看详情

git中的删除还原操作

...区和缓存区都进行还原.和操作版本时光机很像 当想彻底删除工作区的文件的时候使用rm--file来删除这个文件的记录并commit 查看详情

.git文件过大!删除大文件

...,如果你提交了大文件,那么即使你在之后的版本中将其删除,但是,实际上,记录中的大文件仍然存在。为什么呢?仔细想一想,虽然你在后面的版本中删除了大文件,但是Git是有版本倒退功能的吧,那么 查看详情

Git:覆盖或擦除存储库中的大文件(档案)?

】Git:覆盖或擦除存储库中的大文件(档案)?【英文标题】:Git:overwriteorwipelargefiles(archives)fromrepository?【发布时间】:2016-11-1205:07:30【问题描述】:我有一个使用第3方代码的存储库,该代码当前是使用shell脚本下载和编译的。... 查看详情

如何查看git远程仓库中的文件

能不能不拉取或克隆文件到本地,直接在命令行中列出远程仓库中有哪些文件?首先,我们打开自己的本地GIT仓库,在根目录下右击鼠标,选择gitbash选项。怎样从本地删除git远程仓库里面的文件进入到我们的git命令行页面后,... 查看详情

git:如何使其“意识到”文件已被删除[重复]

】git:如何使其“意识到”文件已被删除[重复]【英文标题】:git:howtomakeit\'realise\'thatafileisremoved[duplicate]【发布时间】:2012-03-0723:27:40【问题描述】:当我通过转到我自己的文件夹并手动删除它(不是使用git命令行界面)来删除... 查看详情

如何从远程 Git 存储库中删除所有内容?

】如何从远程Git存储库中删除所有内容?【英文标题】:HowcanIremoveeverythingfromaremoteGitrepository?【发布时间】:2012-07-1719:30:40【问题描述】:我怎样才能完全就地“重新开始”?如何彻底清除Git远程存储库中的所有内容?我是目前... 查看详情

git从库中移除已删除大文件

...150MB文件,虽然已经删除,但还保存了记录。下面教大家如何从库中彻底删除无效大文件。删除大文件方法很简单,就是先找到大文件对象再删除。先提交所有更改$ 查看详情

如何在 Git 存储库中删除多个已删除的文件

】如何在Git存储库中删除多个已删除的文件【英文标题】:HowtoremovemultipledeletedfilesinGitrepository【发布时间】:2011-08-2515:45:18【问题描述】:我删除了一些文件,git状态显示如下。我已经承诺并推动了。GitHub仍然显示存储库中已... 查看详情

如何在不从磁盘中删除文件的情况下 git rm 文件? [复制]

】如何在不从磁盘中删除文件的情况下gitrm文件?[复制]【英文标题】:HowdoIgitrmafilewithoutdeletingitfromdisk?[duplicate]【发布时间】:2010-11-1909:00:59【问题描述】:该命令删除我系统中的文件。我的意思是只从Git存储库中删除文件。如... 查看详情