git进阶 | 03 -如何彻底删除git中的大文件

Posted Mculover666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git进阶 | 03 -如何彻底删除git中的大文件相关的知识,希望对你有一定的参考价值。

一、问题描述

当使用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

以上是关于git进阶 | 03 -如何彻底删除git中的大文件的主要内容,如果未能解决你的问题,请参考以下文章

深入进阶03 - 数据库架构设计

03 函数进阶

03 mysql补充 (进阶)

mysql新手进阶03

Python进阶03python多版本管理工具pyenv

Webpack 4 学习03(配置入口和出口的进阶使用)