瘦身.git,处理项目中.git文件夹过大的问题

这篇具有很好参考价值的文章主要介绍了瘦身.git,处理项目中.git文件夹过大的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

处理项目中.git文件夹过大的问题

出现原因: .git文件主要用来记录每次提交的变动,当我们在提交时包含大文件时,会被git记录下来, .git文件越来越大、越来越繁重。。。文章来源地址https://www.toymoban.com/news/detail-571065.html

下面是解决方法步骤:

一:将项目切换至master分支

// git checkout master

二:删除存储的大文件

方法(1):
#1.找出大文件的前5个
   git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5
#2.找出大文件的文件名
   git rev-list --objects --all | grep 8f10eff91bb6aa2de1f5d096ee2e1687b0eab007
#3.清除该文件的所有历史记录并强制刷新到所有分支(慎重,需要管理员权限,否则报错)
   git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch <your-file-name>' --tag-name-filter cat -- --all
   rm -rf .git/refs/original/
   git reflog expire --expire=now --all
   git gc --prune=now
   git gc --aggressive --prune=now
#4.强制更新远程仓库(这一步执行了,就真没救了。请确认已备份。)
  git push --force --verbose --dry-run
  git push --force

方法(2):前提是知道要删除的大文件

#1.从提交历史中删除所有的zip文件
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.zip' --prune-empty --tag-name-filter cat -- --all
#2.从提交历史中删除dist文件夹中的所有文件
git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch uploads/' --prune-empty --tag-name-filter cat -- --all
#3.清除残余的 objects并通过GC回收空间
	rm -rf .git/refs/original/
   git reflog expire --expire=now --all
   git gc --prune=now
   git gc --aggressive --prune=now
#4.强制更新远程仓库(这一步执行了,就真没救了。请确认已备份。)
  git push --force --verbose --dry-run
  git push --force

三:查看瘦身后的.git文件大小

du .git -lsh 

到了这里,关于瘦身.git,处理项目中.git文件夹过大的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • git如何仅合并项目下的某个文件夹

    假设目前在做的一个项目名为demoproject,目前版本为v1.0.0,标准开发都是在demoproject上进行的,但是有一个客户需要做定制化,需要将项目中的一些信息改为客户的,于是基于demoproject拉了一个v1.0.0-custom,然后将这个v1.0.0-custom交付给了客户。 过了一段时间,客户又提了新的需

    2024年01月21日
    浏览(38)
  • git提交整个文件夹(如果是网上拉下来项目一定要注意)!!!

    前言:首先我讲下我遇到的问题 我也是用git提交整个文件夹包括里面的内容 然后试了正常的提交流程一直行不通 试了好多次 每次提交上去的都是 空文件 !!!  目录 1.正常提交流程 2.如果提交是空文件的!!! 1.先是初始本地仓库  2.可以先用git status 查看这个目录下面有你的项

    2024年02月07日
    浏览(40)
  • IDEA项目java文件夹出现source root标记怎么处理

    在复制项目时出现如下标记 同时src下面无启动入口 解决办法如下: 1、选中项目,右键—open module Settings----Modules----选中项目—右边删除后 2.点击Apply----- OK 这时回到项目能看到目录正常,自动生成了启动入口,但是有些依赖没有。 3.通过Maven重新加载依赖 完成!

    2024年02月16日
    浏览(39)
  • 处理.git文件夹过大出现臃肿问题-filter-branch和BFG工具

    Git开发手册 git一些不常用的命令记不住,可以查看git开发手册(https://m.php.cn/manual/view/34957.html) 1、.git/objects/pack 文件过大 今天从git拉取项目进行开发的时候克隆的很慢,还以为是网速的问题。查看了一些git命令框的拉取网络速度发现网速也很快,克隆下来后才发现是.git文

    2024年02月15日
    浏览(32)
  • java 处理常量字符串过长 & springboot 项目读取 resouces 文件夹下的文件内容

    项目里面有一长串的加密字符串(最长的万多个字符),需要拼接作为参数发送给第三方。 如果我们使用 枚举 定义的话,idea 编译的时候就会出现编译报错 网上还有一个说法,说是编译器问题,修改 idea 工具的编译为 eclipse 即可。 但是结果我仍然不满意,所以我决定把他放在

    2023年04月13日
    浏览(92)
  • 处理podman的overlay-containers中ctr.log日志文件过大的问题

    公司服务器的一些软件使用了容器技术,比如Podman、Docker,从架设到现在已经稳定运行了1年半了,半年前发现磁盘占用比较大, /var/lib/containers 占用了260G的磁盘空间,重启了一下容器,磁盘空间降下来了不少,同时由于这个目录下存的都是容器的磁盘文件,不能乱动,所以

    2024年02月08日
    浏览(31)
  • Java文件处理(一):创建文件、遍历文件夹、删除文件/文件夹

    本篇以代码为核心,在实践中自学吧年轻人~ 要进行文件处理肯定需要 File 类啦。 File 的实例是一个实例(?),但是可以链接到本地的文件、文件夹,并对它们进行操作。 从下面的一些示例中可以看到,同一份本地文件可以拥有多个File对象;同时,构造一个File对象时传入

    2024年02月05日
    浏览(59)
  • git add 文件、文件夹

    git add 添加多个文件,文件之间以空格隔开 多次git add source目录下及子目录下所有文件,home目录下的所有.py文件 git add . ,注意 “.” 前面有空格,添加所有的文件, 或者 git add --all 添加所有的文件 git add 目的是将修改文件由工作区提交到暂存区,可以多次提交,然后commit操

    2024年02月09日
    浏览(32)
  • Git 忽略指定文件或文件夹

    1. 在.gitignore中添加忽略的文件 2. 然后在该目录执行  注意: .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。  

    2024年02月11日
    浏览(46)
  • git删除远程文件夹或文件

    1.操作一 预览将要删除的文件(如果不清楚该目录下是否存在不应该删除的文件), 加上 -n 这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。 2.确定无误后删除文件(本地的文件或文件夹不会被删除) 3.提交到本地代码 4.推送到远程服

    2024年02月12日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包