彻底删除Git中的文件

目录

Github 不允许上传超过 100M 的文件。如果大文件只在最近一次提交中,可以使用参考 GitHub 的帮助《Removing files from a repository’s history》。

从最近尚未上传的提交中删除添加的文件

删除文件

修改最近一次提交

上传到origin

如果需要删除的文件已出现在多个提交中,就必须修改 git 的 commit 和 blob 等对象,参考 GitHub 的帮助《Remove sensitive data》。推荐使用 BFG Repo-Cleaner 删除文件的历史记录,比说使用 git filter-branch 更加方便。

使用BFG工具彻底删除Git中的文件

BFG Repo-Cleaner 时由 Roberto Tyley 开发的工具,适合删除下面类型的数据:

  • 大文件
  • 密码、证书和其它种类的私人数据

安装

该工具使用 Scala 开发,可以从项目网站下载 jar 包直接使用,将 jar 包放到 CLASSPATH 路径中,即可使用下面的命令运行:

使用

进入到某个Git项目目录中

删除50M以上的文件:

更新git项目

此时可以推送成功

BFG还可以删除特定的文件

更多使用方法参看项目网页说明。

参考资料

Remove sensitive data
BFG-Repo Cleaner项目网站
处理GitHub不允许上传大于100M文件问题