git仓库体积过大,如何减小?git仓库体积压缩,使用git-filter-repo删除历史大文件

这篇具有很好参考价值的文章主要介绍了git仓库体积过大,如何减小?git仓库体积压缩,使用git-filter-repo删除历史大文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

如果我们在使用的过程中不小心将较大的二进制文件加入到仓库中,那么随着我们提交次数的增多仓库的体积将会不断的膨胀,例如我在项目中每次都会编译出一些so库文件,但是我并没有忽略这些文件,每次都会提交,随着时间的推移仓库体积不断膨胀,将不能再推送到远程仓库中

我使用的是gitee远程仓库,由于仓库体积的不断膨胀,超出了最大限制,推送失败
git库太大,嵌入式,linux环境高级编程,git,github

1. 安装git-filter-repo

官方库地址和安装说明

  • 手动安装
    我们把git-filter-repo克隆岛=到本地,然后把git-filter-repo文件复制到/usr/local/bin 目录下即可,git-filter-repo实际上就是一个python文件git-filter-repo.py
    git库太大,嵌入式,linux环境高级编程,git,github
  • 通过pip安装
pip install git-filter-repo

2.列出仓库中的大文件

git rev-list --objects --all | grep -E `git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}' | sed ':a;N;$!ba;s/\n/|/g'`

或者

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -15 | awk '{print$1}')"

3.强制彻底删除历史大文件

注意: 删除之前一定要先备份仓库
badfile是文件路径,比如 output/lib/a1.so

git filter-repo --path  badfile --invert-paths --force

也可以批量删除

git filter-repo --path  output/lib/*.so --invert-paths --force

批量删除某个文件的所有提交历史

git filter-repo --path  output/lib/liba.so* --invert-paths --force

删除目录 output/lib/service

git filter-repo --path  output/lib/service --invert-paths --force

删除完后filter-repo会自动执行git gc功能,不需要我们手动执行
git库太大,嵌入式,linux环境高级编程,git,github

4.强制推送到远端

git push -f origin master

5.额外说明

删除之后最好把一些二进制文件添加到.gitignore中不再提交,不然仓库还会不断增大
推送的过程中由于库太大推送到远端失败处理方式

HTTP 413 curl 22 The requested URL returned error: 413
git库太大,嵌入式,linux环境高级编程,git,github
可以尝试设置http buffer来解决

git config http.postBuffer 524288000

解决不了的话需要改成ssh的方式推送
查看当前的远端仓库地址设置

git remote -v

git库太大,嵌入式,linux环境高级编程,git,github
可以看到当前使用的是http地址,设置成ssh地址

git remote set-url origin ssh地址

ssh地址可以在gitee上查看
git库太大,嵌入式,linux环境高级编程,git,github

6.参考文章

仓库体积过大,如何减小(filter-branch方式)
仓库体积过大,如何减小?
用 git filter-repo 彻底删除Git中的大文件
git-filter-repo仓库地址文章来源地址https://www.toymoban.com/news/detail-565336.html

到了这里,关于git仓库体积过大,如何减小?git仓库体积压缩,使用git-filter-repo删除历史大文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git仓库清理瘦身解决 .git文件夹过大的问题

    git仓库清理找了很多资料和方案都没有很完美执行成功的;现在找到一个完美方案,分享给大家;希望能帮助大家 1、gitlab代码开发了仓库开发了五年了,代码只有10M;clone的时候要700多兆很浪费时间 2、创建分支和切换分支耗时,导致电脑崩溃 3、公司内部接入codereview服务;

    2024年02月02日
    浏览(47)
  • Git仓库过大致使clone失败的解决方法

    一般这种情况都是因为项目分支过多,导致你要下载的东西太多,从而引起这个问题。网上有一个流传比较多的修改方案: 使用上述命令,来修改压缩模式,尝试过了没有用。 引起这个问题的根源是文件过多,所以我们可以分批次下载文件,先下载一部分,再下载剩下的。

    2024年01月19日
    浏览(33)
  • 解决gitee仓库中 .git 文件夹过大的问题

    最近,许多项目都迁移到gitee。使用的也越来越频繁,但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答,这种情况如何处理。 我收到的报错如下: 看了下,大概意思是一个仓库体积最大不能超过1GB,但是现在我已经超过3GB了。。。 我第一个想法

    2024年02月03日
    浏览(34)
  • pdf文件过大如何缩小上传?pdf压缩跟我学

    在我们日常工作和生活中,经常会遇到PDF文件过大的问题,给文件传输和存储带来了很大的不便。那么,如何缩小PDF文件大小以便上传呢?下面就给大家分享几个压缩方法,一起来了解下PDF文件压缩方法吧~ 方法一:嗨格式压缩大师 优势特点: 高效稳定:嗨格式压缩大师采用

    2024年02月10日
    浏览(43)
  • 微信小程序包体积过大解决方法

    因为微信开发者工具提交需要整个项目大小不超过2M,超过2M则不能提交,会出现下面这个报错 解决方法: 1、在Hbuilder x上面勾选上运行时压缩代码  2、分包操作 在pages.json文件中设置以下内容:   配置在pages是主包 配置在subPackages里面的是分包 在pages文件夹里面写入登录、首

    2024年02月09日
    浏览(26)
  • 小程序:uniapp解决主包体积过大的问题

    已经分包但还是体积过大 运行时勾选“运行时是否压缩代码”进行压缩 在 manifest.json 配置(开启分包优化) 在 app.json 配置(设置组件按需注入)

    2024年02月07日
    浏览(37)
  • Webpack项目学习:Vue-cli(脚手架)-优化配置 -ui库element-plus+减小打包体积 -按需加载+自定义主题+优化

    安装 全部引入,在入口文件main.js  启动:npm start  按需引入 需要插件快速开始 | Element Plus (gitee.io)     更改默认配置 主题 | Element Plus (gitee.io)    如果有模块没有安装 ,安装一下即可 优化 关闭性能分析 文件单独打包 做缓存-

    2024年02月08日
    浏览(46)
  • 微信小程序:uniapp解决上传小程序体积过大的问题

    在昨天的工作中遇到了一个微信小程序上传代码过大的情况,在这里总结一下具体的解决步骤,首先介绍一下,技术栈是使用uniapp框架+HBuilderX的开发环境。 错误提示 真机调试,提示包提交过大,不能正常生成二维码,后续上传代码更是不可能了,减少包中的体积顺着这条思

    2024年02月03日
    浏览(34)
  • uniapp分包,小程序分包处理 ,小程序发布包体积过大解决方案

    分包就是把一个完整的小程序项目,按照需求划分为不同的子包,构建的时候打包城不同的分包,按需加载 1、 可以减少小程序首次启动的下载时间 2、 可以多人开发中更好的解耦协作 3、 小程序发布主包体积过大 1、 整个小程序,主包加分包不能超过20M,单个包不能超过2M,主包也

    2024年02月04日
    浏览(37)
  • 【代码管理】Git删除仓库中的大文件压缩仓库大小

    Git 仓库中有时会不小心加入了一些大文件,例如模型文件,视频文件 模型文件有可能以 .weights 结尾,或者 .onnx 结尾等等 视频文件有可能以 .avi 结尾,或者 .mp4 结尾 大文件如果一直在仓库中,仓库体积会非常大,下面我们提供一个脚本,专门用于清理 仓库中的文件使用。

    2024年04月26日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包