【 Git 】 .git/objects/ フォルダの容量削減
リポジトリの同期を繰り返し行っていると、gitフォルダの容量が次第に増えてくる。
巨大なリポジトリの場合、gitフォルダの容量増加が特に気になってしまう。
gitフォルダ内で容量を占めているのは objects フォルダである。
objects フォルダの軽量化・容量削減方法を以下に記す。
- GC前の容量確認
$ du -sh .git/objects/
- GCを行う。断片化が少ない場合、実行されない
$ git gc --auto
- --auto で実行されない場合、下記コマンドにてGCを行う
$ git gc
GC実行後、
.git/objects/xx ~ zz フォルダが削除される
.git/objects/pack 内のアーカイブが一つにまとまる
- .git/objects/pack/ フォルダ内を確認する
$ ls .git/objects/pack/tmp_*
tmp_pack_9YV5SB のように tmp_pack_xxxxxx ファイルがある場合、ファイル削除しても問題ない
tmp_pack_xxxxxx ファイルは、git gc 時の中間ファイルであり git gc が失敗すると残る
- GC後の容量確認
$ du -sh .git/objects/
使用例
# GC前の容量確認 $ du -sh .git/objects/ 3.3G .git/objects/ # GCを行う。断片化が少ない場合、実行されない $ git gc --auto # --auto で実行されない場合、下記コマンドにてGCを行う $ git gc Counting objects: 13377, done. Delta compression using up to 16 threads. Compressing objects: 100% (10482/10482), done. Writing objects: 100% (13377/13377), done. Total 13377 (delta 6875), reused 9051 (delta 2556) # .git/objects/pack/tmp_pack_xxxxxx ファイルを削除 $ ls .git/objects/pack/tmp_* $ rm .git/objects/pack/tmp_* # GC後の容量確認 $ du -sh .git/objects/ 2.3G .git/objects/