私はgit repoを持っていますが、同僚は大きなファイルをいくつかプッシュしています。大きなファイルを削除した後、repoは〜200MBですが、.git/packフォルダが大きいため、gitフォルダは1.3GBです。私は今のところ(SOから他の回答に基づいていますが、私を助けるように見えるしない)試してみました何私のgitリポジトリで大きなパックファイルを取り除くにはどうすればよいですか?
:
- BFGツール - >私は、大きなファイルを処分したが、 packフォルダはまだ1.3GBです。
- gitフィルタブランチ - インデックスフィルタ 'git rm -r --cached --ignore-unmatch BIG_FILES' --prune-empty - >私は正常に履歴を書き換えました。ファイルはgithubウェブサイトの履歴コミットにはもう言及されていません
- gitの再梱包-a -d -f --depth = 250 --window = 250 - >パック小さく
- のgit REFLOGをしない期限切れに--expire =今& &のgitのGC --pruneを--all = now --aggressive - > git repackの代わりに、これ以上は動作しません。
- git for-each-ref --format = 'delete%(refname)' refs/original | gitの更新-REF --stdin - >無駄
- gitのクローンファイルに: - >それでも、パックは1.3ギガバイト です//トリック私はローカルレポのクローンを作成し、スプリアス引用文献を削除するべき場所
次のステップは何ですか?
'git filter-branch'は後で'クリーン 'と同じくらい機能します。それがなぜ成功しなかったのかはあなたの疑問からは分かりません。 –
何かの 'git clean 'をきれいにするか、repack/gcを参照していますか? – Nibor
正しい順序は、(1)refs/original /を削除する、(2)reflogが期限切れになる、(3)gcです。理論的には、1と2はどんな順序でも使えるはずですが、ステップ3は間違いなく最後に起こる必要があります。しかし、最後にクローンを作成した場合は、それも機能するはずです。 – torek