解决git提交文件超过100M问题

我碰到的问题是,git提交到本地仓库的时候发现有个文件超过了100M
解决git提交文件超过100M问题_第1张图片
push到远程仓库,报错信息如下,提示我有个文件超过了100M,推送失败
解决git提交文件超过100M问题_第2张图片
我看到消息之后,想着把这个文件删掉再推送一下吧
解决git提交文件超过100M问题_第3张图片
还是提示推送失败,诶我就纳闷了,查了一下,发现了问题,由于第一次push失败之后,我把123.apk进行了删除,然后又提交了一次,也就是说我的第一次提交已经出问题了,通过控制台看到我的本地仓库领先了远程仓库2个版本,现在我需要解决的问题是对之前的dirty commits进行处理, 并且找了了关键字BFG,根据关键字进行相关搜索之后,确定了我碰到的问题使用BFG应该能够解决
然后就是一顿尝试

C:\gitee\test2>java -jar C:/gitee/bfg.jar --delete-files 123.apk
# 执行完了之后提示需要
git reflog expire --expire=now --all && git gc --prune=now --aggressive
# 然后再推送
git push

上面是我在另外一台电脑上复现我碰到的问题,其他文章给出的使用格式是如下这样的,我在我的另外一台电脑上碰到这个问题,实际上解决的方式是用--strip-blobs-bigger-than 100M这个参数

# 指的是你下载bfg.jar的路径
# <.git>指的是你仓库的路径
java -jar <bfg.jar> --no-blob-protection --strip-blobs-bigger-than 50M <.git>

这个里面需要注意的就是第一个是bfg.jar的路径问题,得让java能够找到bfg.jar,第二个问题就是<.git>,这个其实就是本地的git仓库路径,例如我的是C:\gitee\test2,可以明确指定,也可以指定成C:\gitee\test2\.git,正确执行控制台会打印Using repo : C:\gitee\test2\.git,也可以cd进C:\gitee\test2,然后执行不带<.git>参数的git -jar bfg.jar

参考文章:
BFG官网
https://rtyley.github.io/bfg-repo-cleaner/
git push 单个文件时超过100M报错,解决方案
https://www.cnblogs.com/u-damowang1/p/12976576.html
记录一次git提交遇到的问题
https://www.jianshu.com/p/8a2d7820ce32
使用BFG清除git仓库中的隐私文件或大文件
https://www.cnblogs.com/huipengly/p/8424096.html
如何使用BFG清理本地Git存储库
https://blog.csdn.net/dfsgwe1231/article/details/105993469

你可能感兴趣的:(git,git,github)