🌊
ガーベジ・コレクション失敗時の一時ファイルを削除 / Git操作小ネタ
概要
- 大きなリポジトリを使っていると、
git gc
の処理も遅く、一時ファイルも大きくなる - それによって
git gc
がストレージ不足で失敗するケースも存在する -
git gc
の中断によって発生するゴミファイルは自動で消えることはないため、自主的に掃除する必要がある
Sample
# 不要ファイルを探す
cd <repository-path>
find .git/ -iname "*tmp_pack*" -print0| xargs -0 du -sh
# 不要ファイルを直接削除する
cd <repository-path>
find .git/ -iname "*tmp_pack*" -print0| xargs -0 rm
補足
git gc
を行っている場合は次のようなファイルが存在する。.git/objects/pack/tmp_pack_AbCdEfg
このファイルは削除しても問題ない。
このtmpファイルはgit gc --prune
の操作でも削除されずずっと残ってしまう。大規模なリポジトリを使っていると気づかないうちにファイルが溜まってしまい、.git
容量を圧迫するケースがあるので要注意。
参考リンク
Discussion