357

レポのサイズを小さくするための優れたチュートリアルを探してみましたが、何も見つかりませんでした。レポのサイズを減らすにはどうすればよいですか...約 10 MB ですが、Heroku では 50 MB しか許可されておらず、アプリの開発はまだ終わっていません。

通常の容疑者(ログ、ベンダー、ドキュメントなど)を.gitignoreに追加しました。最近 .gitignore を追加しただけですが。

助言がありますか?

4

4 に答える 4

419

11 年後の 2021 年 2 月の更新: 新しいgit maintenanceコマンド( man ページ) が優先されgit gcスケジュールすることができます


Original:git gc --aggressiveは、プルーニング プロセスを強制的に実行する 1 つの方法です (念のため: git gc --aggressive --prune=now)。レポをきれいにする他のコマンドもあります。git gcただし、単独でリポジトリのサイズが大きくなる場合があることを忘れないでください。

, の後に使用してfilter-branch、履歴から削除するディレクトリをマークすることもできます (さらにスペースを確保します)。ここを参照 してください。しかし、それは誰もあなたの公開レポから引き出していないことを意味します. ディレクトリもクリーンアップできるようfilter-branchに、バックアップ参照を に保持できます。.git/refs/original

最後に、このコメントこの質問で述べたように; reflog をクリーニングすると、次のことができます。

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

さらに完全で、おそらく危険な解決策は、未使用のオブジェクトを git リポジトリから削除することです。

于 2010-01-22T11:32:18.530 に答える
110

返信ありがとうございます。これが私がしたことです:

git gc
git gc --aggressive
git prune

それでうまくいったようです。最初は約10.5MBでしたが、現在は980KB強です。

于 2010-01-23T02:35:47.773 に答える
21

私の場合、いくつかの大きな (> 100Mb) ファイルをプッシュしてから、それらを削除しました。しかし、それらはまだ私のレポの履歴にあったため、レポからも削除する必要がありました。

トリックは何でしたか:

bfg -b 100M  # To remove all blobs from history, whose size is superior to 100Mb
git reflog expire --expire=now --all
git gc --prune=now --aggressive

次に、ブランチに力を加える必要があります。

git push origin <your_branch_name> --force

: bfgは、brew を使用して Linux および macOS にインストールできるツールです。

brew install bfg
于 2020-02-03T09:28:05.817 に答える