Git 上传文件超出限制 100M解决 [remote rejected] (hook declined)

项目使用的码云git仓库来进行版本控制,记录git push报错,报错信息如下

Counting objects: 328, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (200/200), done.
Writing objects: 100% (328/328), 14.94 MiB | 594.00 KiB/s, done.
Total 328 (delta 173), reused 207 (delta 68)
remote: Resolving deltas: 100% (173/173), completed with 93 local objects.
remote: Powered by Gitee.com
remote: warning: Large files detected.
remote: error: File coach/class_files.txt is 116.77 MB; this exceeds file size limit of 100.0 MB
remote: error: hook declined to update refs/heads/dev/newround3
error: failed to push some refs to 'https://gitee.com/XunLianPingTaiShouJiAPP/LearnDrivePlatform.git'
To https://gitee.com/XunLianPingTaiShouJiAPP/LearnDrivePlatform.git
! refs/heads/dev/newround3:refs/heads/dev/newround3 [remote rejected] (hook declined)
Done

当你push50M以上的文件时github将会警告,当push100M以上文件,就直接拒绝你的push,要想push必须把该文件从本地仓库和远程仓库全部移除掉

报错提示: error: File coach/class_files.txt is 116.77 MB; this exceeds file size limit of 100.0 MB   class_files.txt这个文件的大小超出上传100兆限制 ,问题找到了后以为解决很简单,把这个文件删除掉重新提交下本地,然后在push就可以了,实际上却是行不通的,解决方案如下:

1.如果这个文件是最近一次commit的,并且你还没有push到github,那么第一步输入命令 cd xxx/xxx/xxx(xxx要换成你项目的路径),然后第二步输入命令 git rm --cached xxx/xxx/city.db,第三步输入命令 git commit --amend -CHEAD,执行完这步后,这个大文件将会从你的commit记录里移除,并且以后commit都将不会再把它commit了,这时候就可以git push把本地代码push到github上了。

注意:这里可能遇到输入git rm --cached xxx/xxx/city.db命令后提示找不到你要删除的文件的问题,出现这个问题的原因是你要删除的文件路径名没写对,一定要仔细检查,确保要删除的文件的路径是正确的。

2.如果已经多次commit,并且push,这就需要把之前的commit记录里面的city.db(大于100M)文件都移除,需要用到一个BFG的工具(下载链接:https://rtyley.github.io/bfg-repo-cleaner/#download)

下载完成后 首先 cd命令到BFG文件所在目录(cd xxx/xxx/),第一步输入命令java -jar bfg.jar --strip-blobs-bigger-than 50M xxx/.gitbfg.jar是下载的jar包名称,50M是大于50m的文件都会被移除,xxx/.git是你自己.git文件的路径),第二步cd xxx/.git ,第三步 git reflog expire --expire=now --all && git gc --prune=now --aggressive,第四步git push,到此大功告成。你的commit历史里所有大于50M的文件的commit全部被清除

你可能感兴趣的:(Android,java,git,码云,android,idea)