0

約 2 GB の Git リポジトリを縮小しようとしています。

ProGit ブックの第 9 章 (9.7) の「オブジェクトの削除」セクションに従っています: http://git-scm.com/book/en/Git-Internals-Maintenance-and-Data-Recovery

を実行してからandコマンドを実行すると、約 118MB のファイルが見つかりましgit gcた。私のレポにある必要はまったくありません。永遠に破壊する必要があります。git verify-packgit rev-list.tar

しかし、どのコミットがそのファイルを使用したかを調べようとすると、何も得られません:

git log --oneline -- news/news.tar

これは、ファイルがリポジトリ履歴にないということですか? その場合、そのままにしておくことができますか、それともオブジェクトとして押し上げられますgit pushか?

もしそうなら、どうすればそれを取り除くことができますか。

4

1 に答える 1

4

git-filter-branchではなく、BFGを使用してください...

BFG を使用すると、大きなファイルを簡単に削除できます。http : //rtyley.github.io/bfg-repo-cleaner/git filter-branchを参照してください。

$ bfg  --strip-blobs-bigger-than 100M  my-repo.git

...まだここ?

ProGit ブックのセクション 9.7 の「オブジェクトの削除」の手順に従っているときに何がうまくいかなかったのかを理解したい場合は、残念ながら、うまくいかない可能性のある場所がいくつかあります。

ファイルは現在、news.tarブランチ、タグ、またはその他の種類の参照のいずれかによって保持されています-実行時にファイルが表示されたため、これがわかりましたgit rev-list --objects --all(「--all」パラメーターは、ブランチだけでなく、すべての参照を確認することを意味します-タグ、および他のエキゾチックなタイプのref) ...しかし、git log --oneline -- news/news.tarコマンドには がありません--all。現在のブランチをリストしているだけです。あなたのブロブは別の参照、おそらく別のブランチまたはタグによって保持されています。

真剣に、BFGを使用してください。

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

于 2013-08-28T14:47:43.800 に答える