2016-07-21 10 views
1

私は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ギガバイト
  • です//トリック私はローカルレポのクローンを作成し、スプリアス引用文献を削除するべき場所

次のステップは何ですか?

+0

'git filter-branch'は後で'クリーン 'と同じくらい機能します。それがなぜ成功しなかったのかはあなたの疑問からは分かりません。 –

+0

何かの 'git clean 'をきれいにするか、repack/gcを参照していますか? – Nibor

+1

正しい順序は、(1)refs/original /を削除する、(2)reflogが期限切れになる、(3)gcです。理論的には、1と2はどんな順序でも使えるはずですが、ステップ3は間違いなく最後に起こる必要があります。しかし、最後にクローンを作成した場合は、それも機能するはずです。 – torek

答えて

-2

これを行う最も簡単な方法は、そのブランチをダウンロードして不要なものをすべて削除し、別のリポジトリを作成することです。そうしないと、githubにアクセスできればそこにあるファイルを管理できます。しかし、私の意見では、ファイルやその他のものをキャッシュしてしまうことなく、それをダウンロードしてクリーンな新しいブランチを作成するのが最良の解決策です。

+0

これはあなたのすべてのバージョン管理履歴を失います。 –

関連する問題