git 仓库中删除历史大文件


在git中增加了一个很大的文件,而且被保存在历史提交记录中,每次拉取代码都很大,速度很慢。而且用删除

提交历史记录的方式不是很实际。

以下分几个步骤介绍如何减小.git文件夹

1.显示10个最大的文件id列表

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

$ git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10
f830d5449f307e45915c2544dfef902cfbfab5d9 blob 3714990 2811488 60010494
986d0c3904de8a3b08c17b5feb9f29da442ebfd4 blob 5912773 5542283 31754
c1fd4cf06c9836d1bbd0344729af99a9e5e5f32c blob 7959920 7872976 234245152
90d45f4b62ce20fb4ff733e83267152951edad97 blob 28553670 28557775 205684107
a2f423946a59e4a2c83955f4af4d19dc1f048e5f blob 45041599 43163608 74595714
4949ea380952b32c412943ed77fb36fd5be35e84 blob 45337600 7431701 62822673
4564140f9e8ee9fefb65db2ae33a8b8a90dc29d3 blob 54272873 54107977 242200239
09401d185a5cdafadc33105b1d62b868328c0dba blob 54639114 54423305 5574037
6562f64e52e205bce49f9611e04e82a0e0f956db blob 129540654 82626130 122357710
3b08a747589895bdc995cd18ae1fe9e70abcd417 blob 697131332 691555610 296308295

2. 根据文件id查询文件路径

git rev-list --objects --all | grep 3b08a747589895bdc995cd18ae1fe9e70abcd417

$ git rev-list --objects --all | grep 3b08a747589895bdc995cd18ae1fe9e70abcd4173b08a747589895bdc995cd18ae1fe9e70abcd417 yunos_compile/aarch64-linux-gnueabi-4.9-glibc-2.20.tgz

3. 移除文件

git log --pretty=oneline --branches -- your_file

$ git log --pretty=oneline --branches -- yunos_compile/aarch64-linux-gnueabi-4.9-glibc-2.20.tgz8cc32c6b75122f204f4d3efdba30130759076731 add Sparrow monkey test user a32477a611de0e8c60f6e58f7690a759b6577bd4 add yunos_compile

4. 删除文件的历史记录

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

5. 提交

git push --force --all

如果出现提示remote: GitLab: You are not allowed to force push code to a protected branch on this project.

需要在gitlab里面取消分支protected

6. 清除本地缓存

rm -Rf .git/refs/original

rm -Rf .git/logs/

git gc

git prune

git 仓库中删除历史大文件的更多相关文章

  1. 在git多分支repo仓库中彻底清除大文件

    坑的由来 repo中不小心上传了许多测试生成的data.结果可想而知,原本只有代码的仓库突然间变得无比臃肿(或者是慢慢臃肿),从早期的几十MB,迅速飙升至1G. 到底发生了什么 早些时候我对git的原 ...

  2. 永久清理git中的历史大文件

    原文发布于:https://www.chenxublog.com/2019/05/26/remove-git-big-files.html 有写老的git仓库,因为当年的无知,不会用.gitignor ...

  3. 忽略Git仓库中已经存在的文件

    解决方案 使用Git bash进入到要忽略的文件所在的文件夹,执行以下命令即可 git update-index --assume-unchanged rebel.xml 参考 Ignore Git ...

  4. git忽略文件并删除git仓库中的文件

    问题描述 不慎在创建.gitignore  文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的 ...

  5. 如何永久删除git仓库中敏感文件的提交记录

    如何永久删除git仓库中敏感文件的提交记录 参考: 1. https://help.github.com/articles/remove-sensitive-data/

  6. 如何删除GIT仓库中的敏感信息

    如何删除GIT仓库中的敏感信息 正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件,否则一旦泄漏到Github,这些非常敏感信息会影响客户的信息安全已经公司的信誉.公司可能其它还有相 ...

  7. 由于github仓库中提前建立readme文件,导致git push报错error: failed to push some refs to 'git@github.com:

    $ git push -u origin master To git@github.com:xxx/xxx.git ! [rejected] master -> master (fetch fi ...

  8. 使用 .gitignore 忽略 Git 仓库中的文件

    .gitignore 在Git中,很多时候你只想将代码提交到仓库,而不是将当前文件目录下的文件全部提交到Git仓库中,例如在MacOS系统下面的.DS_Store文件,或者是Xocde的操作记录,又或 ...

  9. git 恢复工作区删除的所有文件

    /********************************************************************* * git 恢复工作区删除的所有文件 * 说明: * 今天 ...

随机推荐

  1. Djagno从入门到放弃

    一.web应用.http协议.web框架 二.Django简介 三.路由控制 四.视图层 五.模版层 六.模型层:单表操作,多表操作,常用字段和参数,Django-model进阶 七.组件:Djang ...

  2. 关于AI

    自己看着办吧 http://tieba.baidu.com/p/6008409988?fr=ala0&pstaala=1&tpl=5&fid=93764&isgod=0

  3. Java基础--二维数组

    1.二维数组的定义 二维数组表示行列二维结构,在栈空间中的二维数组的地址指向堆空间中的一维数组,堆空间中的一维数组的地址又指向一维数组所在的内存空间. 2.二维数组的声明 二维数组声明有3种方式,推荐 ...

  4. Python解析xml文档实战案例

    xml文档 <?xml version="1.0" ?> <!DOCTYPE PubmedArticleSet PUBLIC "-//NLM//DTD ...

  5. idea 错误: 找不到或无法加载主类

    1.cmd进入项目目录 2.输入maven命令重构项目 mvn clean mvn idea:idea install

  6. Eclipse——如何设置代码字体大小

    eclipse默认字体太小,1920*1080下分辨不清楚,接下来介绍一下如何更改默认字体大小: 1.window-Preferences 2.General-Appearance-Colors an ...

  7. Linux忘记root密码 单用户模式 及启动加密

    单用户模式: 在系统启动引导读秒时,按任意键进入系统选项 再按  e  键   选择第二项  按 e  进入编辑  输入  空格  1 然后回车  再按B  键 不需要密码即可进入系统 再passwd ...

  8. Swift 4 关于Darwin这个Module

    大家在做app或者framework的时候经常会用到生成随机数的方法arc4random系列,或者取绝对值abs()等.所以我有一次好奇的想看看在Developer Document里 是怎么描述这些 ...

  9. Ubuntu18.04应用程序安装集锦

    整理网上的资源: Python Web开发工具箱 ubuntu美化及超NB的zsh配置 api文档查询工具:zeal,dash(收费)

  10. 简单文本悬浮div提示效果

    <html> <head> <script src="jquery-1.9.1.min.js" type="text/javascript& ...