Git リポジトリのスリム化

容量の確認

リポジトリをクローン

git clone git@github.com:sample/sample.git


ガベレージコレクター

# プロジェクトへ移動
cd sample

# 全体の容量を確認
du -sh .git/objects

# ガベレージコレクター
git gc --auto

gc autoコマンドは大体の場合何もしないそう

約 7,000個もの緩いオブジェクトがあるか、または50以上のパックファイルがないと、Gitは実際に gc コマンドを開始しません。


git_find_big.shをダウンロード

git_find_big.sh
git_find_big.shをプロジェクト直下に移動させる

# 権限変更
chmod 777 git_find_big.sh


容量の多いファイルを順番に表示

表示件数を変えることができる

objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n 20`
objects=`git verify-pack -v .git/objects/pack/pack-*.idx | grep -v chain | sort -k3nr | head -n 100`


git_find_big.shを実行

git_find_big.sh

All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file.
size  pack  SHA                                       location
592   580   e3117f48bc305dd1f5ae0df3419a0ce2d9617336  media/img/emojis.jar
550   169   b594a7f59ba7ba9daebb20447a87ea4357874f43  media/js/aui/aui-dependencies.jar
518   514   22f7f9a84905aaec019dae9ea1279a9450277130  media/images/screenshots/issue-tracker-wiki.jar
337   92    1fd8ac97c9fecf74ba6246eacef8288e89b4bff5  media/js/lib/bundle.js
240   239   e0c26d9959bd583e5ef32b6206fc8abe5fea8624  media/img/featuretour/heroshot.png