彻底删除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文件问题》