Gitリポジトリの容量肥大化を解決する方法【実践テクニック集】

Gitリポジトリの容量が肥大化する原因とその解決方法を解説。履歴の見直し、大容量ファイルの削除、ツール活用など、実務で使える容量削減テクニックを紹介します。

Gitリポジトリの容量が増える原因とは?

Gitはバージョン管理のため、過去のすべての履歴を保存します。そのため、以下のような要因で容量が急激に膨らむことがあります:

  • 不要な大容量ファイル(画像、動画、バイナリなど)の追加
  • .gitignore
    による除外漏れ
  • 間違って大量のファイルをコミット
  • 不要なブランチ・タグが大量に残っている

リポジトリ容量を確認する方法

1. リポジトリの合計サイズ確認(UNIX系)

du -sh .git

2. ファイルサイズの内訳を確認

git count-objects -vH
  • size-pack
    が特に大きい場合は過去の履歴が原因

3. 大きなファイルを調査(BFGやfilter-repo推奨)

git rev-list --objects --all | sort -k 2 > allfiles.txt
git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -20

解決方法①:大容量ファイルを過去の履歴から削除

方法1:BFG Repo-Cleanerを使う(高速・簡単)

java -jar bfg.jar --delete-files *.zip

または特定ファイル:

java -jar bfg.jar --delete-files secret.log

方法2:git filter-repoを使う(より柔軟)

git filter-repo --path bigfile.dat --invert-paths

※ 使用後は必ず以下を実行:

git reflog expire --expire=now --all
git gc --prune=now --aggressive

解決方法②:
.gitignore
を見直して再発防止

不要なファイルを追跡対象にしないために、以下を見直しましょう:

*.log
*.zip
node_modules/
.DS_Store

変更後はキャッシュからも削除:

git rm -r --cached .
git add .
git commit -m "Update .gitignore"

解決方法③:不要なブランチ・タグを整理

ローカルブランチの削除

git branch -d old-branch

リモートブランチの削除

git push origin --delete old-branch

未使用タグの削除

git tag -d v0.1.0
git push origin :refs/tags/v0.1.0

解決方法④:Git Large File Storage(Git LFS)の導入

頻繁に更新される大容量ファイルを扱う場合は、Git LFSの利用がおすすめです。

git lfs install
git lfs track "*.psd"
git add .gitattributes

その後、通常通り

git add
git commit
git push
で管理されます。


まとめ:Gitの容量管理は早めの対策がカギ

リポジトリの肥大化は放置しておくとclone/pull/pushなどの操作が遅くなり、チーム全体の生産性にも影響を与えます。問題が発生する前に

.gitignore
や LFS の導入を検討し、肥大化してしまった場合は BFG や filter-repo での履歴整理を行いましょう。

編集部

編集部

Gitリポジトリの容量肥大化を解決する方法【実践テクニック集】