清除GitLab存储库中的大文件 [英] Clear 'hiiden' large files in gitlab repo
本文介绍了清除GitLab存储库中的大文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
gitlab
文件是python
脚本文件和jupyter
笔记本。然而,我的GitLab回购显示我当前使用的是9.8 GB(令人震惊!)。
我真的不打算将大文件提交到repo
(例如数据文件)。肉眼检查没有给我看那些大文件,所以我可以把它们移走。我看到的都是python脚本文件。
如何清除repo
中的那些大文件?
推荐答案
大文件提交历史记录在GitLab中仍然可用,即使您删除了那些"大文件"。您可以使用this答案中的以下脚本查看这些文件列表。
git rev-list --objects --all |
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
sed -n 's/^blob //p' |
sort --numeric-sort --key=2 |
cut -c 1-12,41- |
$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
首先创建一个脚本文件,并将该文件的权限授予可执行文件,如下所示:
vim history.sh # and paste the above script into the file
chmod +x history.ch # give file exe permission
./history.sh # to run file
这将报告所有提交历史记录和文件大小,如下所示:
....
192e100aaf93 2.8MiB SMF/Checking/models/Model_0.h5
1b808a1a25ba 2.8MiB SMF/Checking/models/Model_2.h5
80168dc7ffb54 1.3GiB SMF/data/segments_instances_final.csv
775b60418498 1.5GiB Revised_KerasData_NoSmoothing.pickle
2341792d8c9b 4.2GiB geolife.sql
......
删除大文件
使用BFG-repo-cleaner清除这些文件:
注意:假设您已经安装了Java,请下载上述repo中的bfg.jar文件并将其复制到当前目录。
- 克隆您的Git存储库(并对其进行备份):
$ git clone --mirror git://example.com/my-large-repo.git
- 运行bfg清理存储库(例如清除大于50MB的文件):
$ java -jar bfg.jar --strip-blobs-bigger-than 100M my-large-repo.git
....
Before After
-------------------------------------------
First modified commit | fc7cf2f9 | a772ae4a
Last dirty commit | d4a1a3d4 | 9b345832
Deleted files
-------------
Filename Git id
-------------------------------------------------------------------------------------------------------------------------
3Class_Instances.pkl | ceebb395 (558.1 MB)
Beijing_KerasData.pkl | 8681a270 (133.4 MB)
Filtered_Trajectory.pkl | bfe06d09 (137.8 MB)
....
- 剔除不需要的脏数据
$ cd my-large-repo.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive
Enumerating objects: 1306, done.
Counting objects: 100% (1306/1306), done.
Delta compression using up to 8 threads
Compressing objects: 78% (973/1238)238)
...
- 最终推回您的干净回购:
$ git push
来源:here
这篇关于清除GitLab存储库中的大文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文