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

猜你喜欢

转载自blog.csdn.net/Mculover666/article/details/125646383
今日推荐