git 仓库中删除历史大文件
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 仓库中删除历史大文件的更多相关文章
- 在git多分支repo仓库中彻底清除大文件
坑的由来 repo中不小心上传了许多测试生成的data.结果可想而知,原本只有代码的仓库突然间变得无比臃肿(或者是慢慢臃肿),从早期的几十MB,迅速飙升至1G. 到底发生了什么 早些时候我对git的原 ...
- 永久清理git中的历史大文件
原文发布于:https://www.chenxublog.com/2019/05/26/remove-git-big-files.html 有写老的git仓库,因为当年的无知,不会用.gitignor ...
- 忽略Git仓库中已经存在的文件
解决方案 使用Git bash进入到要忽略的文件所在的文件夹,执行以下命令即可 git update-index --assume-unchanged rebel.xml 参考 Ignore Git ...
- git忽略文件并删除git仓库中的文件
问题描述 不慎在创建.gitignore 文件之前的时候将文件push到了 git仓库,即使之后在.gitignore文件中写入新的过滤规则,这些规则也不会起作用的,git依然会对所有git仓库中的 ...
- 如何永久删除git仓库中敏感文件的提交记录
如何永久删除git仓库中敏感文件的提交记录 参考: 1. https://help.github.com/articles/remove-sensitive-data/
- 如何删除GIT仓库中的敏感信息
如何删除GIT仓库中的敏感信息 正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件,否则一旦泄漏到Github,这些非常敏感信息会影响客户的信息安全已经公司的信誉.公司可能其它还有相 ...
- 由于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 ...
- 使用 .gitignore 忽略 Git 仓库中的文件
.gitignore 在Git中,很多时候你只想将代码提交到仓库,而不是将当前文件目录下的文件全部提交到Git仓库中,例如在MacOS系统下面的.DS_Store文件,或者是Xocde的操作记录,又或 ...
- git 恢复工作区删除的所有文件
/********************************************************************* * git 恢复工作区删除的所有文件 * 说明: * 今天 ...
随机推荐
- Xcode10 不能导入头文件(导入头文件不提示)
连接地址:https://blog.csdn.net/wyz670083956/article/details/87774705 xcode10可能是:Project Settings
- 【asp.net】asp.net实现上传Excel文件并读取数据
#前台代码:使用服务端控件实现上传 <form id="form1" runat="server"> <div> <asp:Fil ...
- java 中使用RSA非对称性加密解密
需要引入的jar包:bcprov-jdk15on-161.jar 下载地址:https://www.bouncycastle.org/latest_releases.html //公钥加密 publi ...
- python小练习: 给定一个数组 按重复次数 降序排列输出 数组非空且为正整数
假设有个列表 a=[1,1,1,2,2,4,5,5,5,5] (非空且为正整数) 那么根据要求 最终输出的形式为 5,1,2,4 (按重复次数 降序排列输出) 代码实现及解释: a=[1,1,1 ...
- 解决reverse改变原数组
let arr =[1,2,3,4] console.log(arr) //[1,2,3,4] let arr2 = arr; console.log(arr2) //[4,3,2,1] consol ...
- Linux基础命令(三)——>文件过滤及内容编辑处理命令
1.cat 合并文件或查看文件内容 基本功能:cat test.txt 查看文件内容 也可以多文件显示 cat test1.txt test2.txt >test3.txt ...
- python中的图像数据库PIL
from PIL import Image im = Image.open("图片路径") im.function() 常用的函数: 1.im.crop(x,y,x1,y1) 对图 ...
- Python-re模块中一些重要函数
re模块包含对正则表达式的支持.
- fatal error: Eigen3/Core: 没有那个文件或目录
解决方法: 在CMakeLists.txt文件里添加: include_directories("/usr/include/eigen3")
- 第30月第13天 supportedInterfaceOrientationsForWindow旋转
1. 对于做视频横屏播放的情况下:做旋转有3种方法. 第一种:就是网上说的用旋转矩阵方法CGAffineTransformMakeRotation来做,直接旋转某个view,之后setFrame,至于 ...