私の質問はこれと同じです。 Remove large .pack file created by git大きなパックファイルは解決しません
私はここに記載されているすべての手順に従っ:https://git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recoveryもこのaccepted answerに記載されているすべての手順を試してみました。しかし、パックファイルのサイズは依然として大きい。前
:
count: 0
size: 0
in-pack: 2259
packs: 1
size-pack: 67333
prune-packable: 0
garbage: 0
size-garbage: 0
後:
count: 0
size: 0
in-pack: 2259
packs: 1
size-pack: 67333
prune-packable: 0
garbage: 0
size-garbage: 0
私はまだ、このコマンドを実行することができます:git verify-pack -v .git/objects/pack/pack-xxx.idx | sort -k 3 -n | tail -3
をし、三個の大のファイルとそれに対応するコミットを参照してくださいが、私はgit log --oneline --branches -- <large_file_name>
を実行すると、何のコミットはありませんこれはファイルを参照しています。これは、私がコミットの履歴を書き換えたためかもしれません。明らかに、私はラインに沿ってどこかにうんざりしているようです。
私の質問は、大きな.packファイルに関してこの問題を解決する方法です。 (それはあなたの意思だと仮定して)いいのよ、私はgit log --oneline --branches -- <large_file_name>
を実行したとき、私はコミットの歴史を書き直したのでかもしれファイルを、リファレンスnoコミットがない
コマンドラインで指定したようにすべてのreflogエントリを追加するための '--reflog'オプションもあります。これは' --branches'がすべてのブランチヒントを追加するのと同じです。 – jthill
@torekと@jthill - すべての情報に感謝します。私は最終的にリポジトリのサイズを縮小することができました。この[チェックリスト](https://git-scm.com/docs/git-filter-branch#_checklist_for_shrinking_a_repository)は、あなたのコメントに加えてそれを把握するのに役立ちました。具体的には、私はこれらのコマンドに従っていました: 'git for-each-ref --format ="%(refname) "refs/original/| xargs -n 1 git update-ref -d'、 'git reflog expire --expire = now --all'そして最後に' git gc --aggressive --prune = now' – Ram
@jthill:このフラグはGit 1.5.0以降、Git 2.2.0までは文書化されていませんでした(と私は気づいていませんでした)。 – torek