すでにいくつかの非常に関連する質問がstackoverflowにあります(いくつかは以下にリンクされています)が、私は特定の問題を解決できませんでした.
私は、リモート リポジトリのサイズを最大 14 GB まで増やした巨大なデータファイル/イメージをプッシュした同僚とリポジトリを共有しています。後で、これらのファイルはrm filename
、ローカル リポジトリのサイズを適切なサイズに変更するだけで削除されました。ただし、オンラインで確認すると、リポジトリのサイズはまだ 14 GB です。
リポジトリのサイズを縮小しようとしたのは、ここで提案されているものです:
git reflog expire --expire=now --all
git gc --aggressive --prune=now
しかし、それは私のローカルリポジトリのサイズにのみ影響を与えました.
ファイルは自分のコンピューターではなく同僚のコンピューターで削除されたため、ここでの回答は役に立ちませんでした。
まだ試していませんが、ここで説明されているように、すべてのコミット履歴を削除することでうまくいく可能性があります。rm filename
ただし、実際にはすべてのコミット履歴を保持し、自分のものではないマシンで作成されたゴミをすべて取り除くだけです。
すべてのコミット履歴を削除せずに、これに対する解決策 (他のローカル マシンで作成されたガベージを削除して、リモート リポジトリのサイズを縮小する) はありますか?
編集:
コメントの@torekのリンクで、特定のファイルに関連するコミットを取り除くコマンドを見つけました。次に、.png などの画像に関するすべてのコミットを取り除こうとしました。次のコマンドを使用しました。
git filter-branch --tree-filter 'rm -f *.png' HEAD
ただし、次のメッセージが表示されます。
警告: Ref 'refs/heads/master' は変更されていません
どうすれば正しく使用できますか?