git 查找大文件、删除大文件详细步骤
  I2mYtTE4JzUx 5天前 21 0

如在使用Git过程中不小心将较大的二进制文件加入仓库,那么仓库大小很快就会超过规定的配额,在Push的时候会报下面的错误:

remote: Powered by GITEE.COM [GNK-6.4]
remote: error: File: c91e5de4f55bedd0669db01036fc131ea8e516ce 380.66 MB, exceeds 100.00 MB.
remote: Use command below to see the filename:
remote: git rev-list --objects --all | grep c91e5de4f55bedd0669db01036fc131ea8e516ce
remote: Please remove the file from history and try again. (https://gitee.com/help/articles/4232)

好面代码中以给出了 c91e5de4f55bedd0669db01036fc131ea8e516ce ,可以通过以下命名知道是哪个文件超过限制大小

git rev-list --objects --all | grep c91e5de4f55bedd0669db01036fc131ea8e516ce

执行命令后会获取到文件名,也可以通过下面的步骤2通一查看已经知道的大文件。

0cc3dfbe8eec2fa11e941c9001f3f062ec66cf3c goviewxw/鄂尔多斯市.zip

然后就可以执行删除,强行远程推送,清除缓存就ok了,下面是详细的步骤

1. 压缩历史记录 删除无用的对象 优化存储结构 清理无效的引用  清除过期的临时文件
git gc
2. 查找大文件,"tail -20"中的20表示条数 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -20 | awk '{print$1}')" 3. 删除大文件,”xxx.framework“是上一步中列出的大文件路径,遍历所有的commit,删除指定的文件,重写历史commit git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch xxx.framework' --prune-empty --tag-name-filter cat -- --all 4. 强行远程推送 git push origin --force --all 5. 清除缓存 rm -rf .git/refs/original/ git reflog expire --expire=now --all git gc --prune=now // 查看项目仓库大小 git count-objects -v

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 5天前 0

暂无评论

推荐阅读
  cuxaB9wF7MJS   2024年08月07日   35   0   0 代码与软件发布
  oFJsuGHhDkb9   2024年08月07日   37   0   0 代码与软件发布
  oFJsuGHhDkb9   2024年08月07日   64   0   0 代码与软件发布
  np65ry6OHvjk   2024年08月07日   65   0   0 代码与软件发布
I2mYtTE4JzUx