美文网首页
Git不小心commit了很大的文件怎么办?

Git不小心commit了很大的文件怎么办?

作者: 慕名君 | 来源:发表于2022-06-13 20:18 被阅读0次

    大家使用git不知道有没有一个习惯,基本就是 一套 df 二连 素质三连:

    1 git add . 2 git commit -m 3 git pull 4 git push
    拉闸,不小心commit了超过10M的文件,拉闸。 出现了一个错误。

    ’The size of file ‘xxx‘ has exceeded the upper limited size (10 MB) in commit
    意思就是我们commit超过10MB的文件无法提交。 (git 可以修改这个上限,自己去百度,好像上限是50MB)
    

    这时候不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件。以后不管是拷贝,还是push/pull都比较麻烦,尤其是在做CI时的耗时很痛苦。

    方法:

    1、若知道你的大文件是什么类型的,比如.gz或者.jar等,可以删除匹配xxx的所有文件:比如我很明显就提示我是xxx.jar 太大了。 因为我打了整个项目的jar包,接近100MB肯定大

    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.gz' --prune-empty --tag-name-filter cat -- --all
    

    2、若不知道,想查看下目前git库中有哪些大文件,可以用底层命令verify-pack识别出大对象:

    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 对象path' --prune-empty --tag-name-filter cat -- --all
    

    3、释放空间

    rm -rf .git/refs/original/ 
    git reflog expire --expire=now --all
    git gc --prune=now
    git gc --aggressive --prune=now
    

    4、把修改强制推送到远端

    git push origin --force --all
    

    搞定

    相关文章

      网友评论

          本文标题:Git不小心commit了很大的文件怎么办?

          本文链接:https://www.haomeiwen.com/subject/glxamrtx.html