欢迎关注微信公众号:【 全栈攻略 】

场景

官网项目的官网介绍的视频文件,最初是直接引入本地路径调试的,由于运维还没有生成在线地址给我们,后来提交代码到仓库中去的时候忘记在 .gitignore文件配置,导致把这个视频文件提到了git历史记录了。话不多说,下面是具体的操作步骤。

步骤如下:

首先,我们需要通过命令找出我们Git提交记录中的大文件。
我们需要删除的视频文件,确定是最大的文件,所以我们只需找出排名前 1 的 pack 记录即可,不过这里我们为了演示取排名前3的,执行以下命令:

 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -3

上面的命令执行后出现如下信息:

 16779d71545f8b76faf02afffe5544ca87a4aaac blob   1102745 1102346 845968268f450adbce465995f52796f05956f4f1fe79429 blob   2081189 2081811 5111192d0781e7d125599010f4885fa95802a1d7018cd44 blob   278367052 278045657 10601748

最后一条就是最大的一条记录,d0781e7d125599010f4885fa95802a1d7018cd44是它的 id。
找出该记录对应的文件,执行以下命令:

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

上面的命令执行后出现如下信息:

 d0781e7d125599010f4885fa95802a1d7018cd44  app/src/assets/img/FS.mp4

这个文件就是我们不小心提交上去的视频文件,它占了有 200 多 M 的空间。

既然文件找到了,那么得将该文件从历史记录中删除,执行以下命令:

 git log --pretty=oneline --branches --  app/src/assets/img/FS.mp4

上面的命令执行后只是从历史记录中移除,还没有完全删除它,我们需要重写所有 commit,将该文件从 Git 历史中完全删除:

 git filter-branch --index-filter 'git rm --cached --ignore-unmatch  app/src/assets/img/FS.mp4 -- --all

上面的命令执行后,此时历史记录中已经没有该文件了,此时是真正删除了它。
不过我们运行 filter-branch 产生的日志还是会对该文件有引用,所以我们还需要运行以下几条命令,把该文件的引用完全删除:

 rm -Rf .git/refs/originalrm -Rf .git/logs/git gcgit prune

现在我们再看 .git 文件的大小明显变小了,少了那个大文件,说明我们之前误提交的大文件已经删除了。
最后一步就是 push 代码了,不过就是需要强制 push:

git push --force
大功告成,以上就是删除 Git 历史记录(已提交)中大文件的步骤。

Git删除历史记录(已提交)中的大文件相关推荐

  1. git删除相关历史提交记录,相关文件保持当前状态

          git删除相关历史提交记录,相关文件保持当前状态 引言   新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜.这不实战类型的博客记录又开始了!当然实战类型的博客 ...

  2. 【Git学习】如何删除Git中的大文件

    近几天,部署了APP出图自动化测试平台西安Jenkins执行节点,该节点部署应该是能提升APP出图自动化测试的构建效率,但万万没想到,刚部署没多久发现该节点构建频频失败,失败的原因也很直接:GitLa ...

  3. 如何找到已提交内存越来越大的原因?

    最近经常提示内存不足,发现任务管理器中已提交内存变得很大,PageFile也很大. 但任务管理器的详细信息里面查看所有进程的提交内存都不是很大,加起来远远达不到任务管理器性能页签里面的已提交内存. 网 ...

  4. Git如何从众多提交中保留个别提交

    Git如何从众多提交中保留个别提交 合并提交 如果说在众多提交中,已某个提交为基准,只保留上游众多提交中的某个或者某几个,可以使用 cherry-pick命令,具体是: git cherry-pick ...

  5. Win10内存已提交大小过大的问题调研

    Win10最大的内存大小实际是看已提交中的最大值(上图红框),如果这个数值满了,就会导致系统崩溃. 使用过程中经常会出现已提交不合理变大的情况,可能是由于Win10使用过程中会存在很多内存碎片或者系统 ...

  6. git删除所有历史提交记录,只留下最新的干净代码

    git删除所有历史提交记录,只留下最新的干净代码 1.Checkoutgit checkout --orphan latest_branch2. Add all the filesgit add -A ...

  7. git删除某次提交(某个commit)的方法【转】

    本文转载自:https://www.36nu.com/post/275 git删除某次提交(某个commit)的方法 疯狂的兔子 发表于 4个月前 阅读 536 收藏 0 推荐 0 评论 0 推荐收藏 ...

  8. 使用请求在python中下载大文件

    本文翻译自:Download large file in python with requests Requests is a really nice library. 请求是一个非常不错的库. I' ...

  9. 【Linux】使用du、df 和 sort 命令快速找出Linux系统中的大文件

    在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致的报错,那么具体怎么查看磁盘空间的大小呢?怎么找到占用空间最大的文件呢? 使用df.du并结合sort,可以快速找到系统中的大文件! ...

  10. 如何快速找出Linux系统中的大文件?

    今日主题: 如何快速找出Linux系统中的大文件? 在前面的文章中,我们讲到了压测时磁盘空间被占满的问题,可以跟今天的文章结合着看. 在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致 ...

最新文章

  1. Epoch不仅过时,而且有害?Reddit机器学习板块展开讨论
  2. 细数二十世纪最伟大的10大算法
  3. sklearn做交叉验证
  4. Android优化五:布局优化
  5. Python 中名词
  6. 史上最详细Docker部署Mysql主从复制,带每一步骤图!!!
  7. PMP知识点(六、质量管理)
  8. axios获取图片显示_vue中使用axios post上传头像/图片并实时显示到页面的方法
  9. (原创) 看电影 源代码 有感——量子力学的玄妙
  10. 没有数学天赋是一种什么体验?
  11. flex 底部固定_小猿圈网站页面底部固定的方法
  12. 高三了,一模距本科线还差22,英语才28,怎么办啊
  13. linux服务器架设指南笔记
  14. intellij idea 更换代码颜色(教程)
  15. 信阳师范学院计算机老师,信阳师范学院计算机与信息技术学院导师教师师资介绍简介-樊建伟...
  16. 炒股程序化交易接口怎么获取实时行情
  17. MongoDB的集群安装搭建配置
  18. 国防科大 linux教程,操作系统国防科大罗宇
  19. CentOS 7下ngrok服务器搭建
  20. NVME协议解读(一)

热门文章

  1. 如何在React.js文件中设置标签的背景图片
  2. 微软云计算解决方案介绍
  3. ggplot2 画图 X 轴排序问题
  4. STM32的Flash地址空间的数据读取
  5. 线代:1.7矩阵对角化二次型
  6. 人工智能学习路线,文末赠书活动(深度学习Spark机器学习)
  7. 宽带服务器维护查询,网络连接状态查询方法
  8. My Forty-eighth Page - 组合 - By Nicolas
  9. HBulider 制作 手机APP
  10. 李白关于鸿蒙的诗,名诗欣赏:李白《把酒问月》之--青天有月来几时