私は(開始時に)サイズが5.6Gであったレポを持っています:
aparkin@mymachine ~/repo (master)
$ du -d 0 -h
5.6G .
ただし、このリポジトリには、リポジトリに含める必要がなくなった多数の大きなバイナリファイルが含まれていました。元々、それらはディレクトリ構造のさまざまな場所にありましたが、すべて「tc.dat」という名前でした。「クリーンアップ」ステップとして、cruft
ディレクトリを作成しgit mv
、それらすべてをこのcruftディレクトリに入れて、名前をtc.dat1
、tc.dat2
などに変更しました。
次に、これらのファイルを5つ作成tc.dat1
しました。tc.dat5
次に、この質問filter-branch
に従い、クリーンアップ手順と一緒に使用して、cruft
ディレクトリ内のこれらのファイルのすべてのインスタンスを削除しました。ただし、これにより、(に移動する前のcruft
)元のファイル名がリポジトリに残ります。次に、すべてのコミットにわたって元の場所からそれらを削除する手順を繰り返し、再度クリーンアップ手順を実行しました。
rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
結局のところ、私が
git log --all -- tc*.dat
履歴に一致するものはありません。これは、完全に削除されたことを示しています。ただし、もう一度行うとdu
、リポジトリのサイズは5.6Gのままです。これらのファイルが約0.5GBで構成されていることを考えると、その数は減少すると予想されます。
私は何が欠けていますか?