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中的大文件的主要内容,如果未能解决你的问题,请参考以下文章