我知道我備份的檔案gitlab是python腳本檔案和jupyter筆記本。但是,我的 gitlab 存盤庫說我目前使用的是 9.8GB(令人震驚!)。

我真的不打算將大檔案提交給repo(例如資料檔案)。目視檢查不會顯示那些大檔案,因此我可以洗掉它們。我看到的只是python腳本檔案。
我如何清理我repo的那些大檔案?
uj5u.com熱心網友回復:
即使您洗掉了那些“大檔案”,gitlab 仍然可以使用大檔案提交歷史記錄。您可以使用此答案中的以下腳本查看這些檔案串列。
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
來源:這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/363597.html
上一篇:Git不會忽略沒有擴展名的檔案
