57

次のソースを使用して、リポジトリからいくつかの大きなファイルとディレクトリを消去しています:

http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/

git リポジトリがこれほど大きいのはなぜですか?

git filter-branch現在のブランチでのみ機能するようです-一度にすべてのブランチに適用する方法はありますか?

4

3 に答える 3

7

@ben-lee の回答で説明されているように、--allすべてのブランチを書き換える必要があります。レポジトリにタグがある場合、サイズを縮小するメリットを得るために、それらすべてとブランチをクリーンアップする必要があります。これには追加の--tag-name-filter cat呪文が必要です。

質問では の使用が指定されていますが、質問者は「私のリポジトリからいくつかの大きなファイルとディレクトリを消去git filter-branch」したいと考えているため、それを行うための最良のツールは実際には BFG Repo Cleanerであり、よりシンプルで高速な. 例えば:git filter-branch

$ bfg --strip-blobs-bigger-than 10M

... 10MB を超えるすべての BLOB (最新のコミットに含まれていないもの)を削除し、リポジトリ内のすべてのブランチとタグで機能します。

完全な開示: 私は BFG Repo-Cleaner の作成者です。

于 2014-01-22T07:27:43.223 に答える