修复github大文件推送问题

Yuan.Sn

最近在 git commit 当中不小心 commit 进了一个 200多MB的视频大文件,以及超出了Github最大的推送上限(100MB).为此,删除后重新推送,但是问题依旧

image
image

后面查阅资料得知: 这个大文件任然包含在git历史记录当中,git push 会尝试推送所有本地不存在于远程仓库的历史记录,所以它依然会尝试推送那个有问题的旧提交,导致推送失败。因此,写了这篇BLOG,记录解决修复 github大文件推送的过程

BFG Repo-Cleaner

进过搜索,git-filter-branch 是git官方解决这类问题的方案,但是操作比较繁杂。为此,选用了 BFG Repo-Cleaner 这个项目,能够更加便捷的清理git当中的问题块。

image
image

STEP0: 先备份 以免发生以外

就复制一份吧,没什么好说的

STEP2: 使用BFG清理大文件

将下载出来的jar包和clone出来的裸克隆rep放在一个目录下,然后执行

1
$ java -jar ./bfg-1.15.0.jar --delete-files sunset.mp4 geekie_yuan.github.io.git 

其中 ./bfg-1.15.0.jar 是你的jar包路径;sunset.mp4 替换成你需要删除大文件的名字;geekie_yuan.github.io.git 是你的rep名称

image
image

执行过后按理来说大文件记录就被删除了,cd回需要推送的仓库,然后git push就成功了

image
image
Comments