Git 删除大文件

448 阅读1分钟

有时候,在项目文件夹中会产生一些特别大的文件,这时候要是没有注意直接提交了,这个文件就会一直存在在项目文件夹中,就算你把文件夹中的文件删除,git还是会在.git中留有备份,以便于回滚,彻底删除会变得很麻烦。

前阵子就在项目中出现了这个事情,也找了一些解决方案,其中提的最多的是用git verify-pack系列操作和重建库。git verify-pack在我的powshell中跑不了,重建库又会丢失之前的记录,所以找了第三种方法,利用BFG第三方工具来解决。

BFG,详情看官网介绍,这里只记录一下操作步骤。

  1. 准备
  • BFG依赖JAVA环境,请先安装JAVA。
  • 在官网下载BFG的jar包
  • git clone --mirror git://example.com/some-big-repo.git或者本地备份项目文件夹
  1. 操作步骤
  • 把BFG复制到项目文件夹中
  • 打开powshell 定位到项目文件夹
  • 命令java -jar bfg.jar --strip-blobs-bigger-than 100M把100m以上的文件记录删掉,更新提交记录。
  • 命令git reflog expire --expire=now --all && git gc --prune=now --aggressive 把脏数据回收删除

之后就可以用git push 来提交了。