2016-04-20 5 views
4

私は大きなgitリポジトリを持っています。 dotgitフォルダのサイズは非常に大きいです(350gb-ty、私たちの3Dモデラー用:))私はハードディスクに240GBの空き容量があります。私は、このコマンドを実行しようとしていた場合:私はいくつかのエラーを得た リポジトリのサイズを小さくするにはどうしたらいいですか?

git gc --prune=now --aggressive 

can't allocate memory...lalala 

私はこれで何をすべき?私はgitサーバーに移動して、このコマンドをそこで実行する必要がありますか?

+1

あなたの質問のキャプションと内容は、基本的に2つの異なる質問です。あなたの歴史を保存したいのですか? –

+0

回答のために@RolandSmith ty。ごめんなさい。はい、私は2016年以来の歴史を維持したいと思います。 dotgitフォルダをクリアしたい。 – Max

+0

'.git'ディレクトリはあなたの履歴がある場所です。あなたはそれを完全にクリアすることはできませんし、あなたの歴史の* *を維持することはできません。私はあなたの歴史のいくつかをクリアしたいと思っていますが、何をしたいのかという詳細について質問を更新する必要があります。 –

答えて

1

リポジトリはおそらく大量の大きなファイルを多数コミットしています。あなたの履歴を切り捨てることは本当に助けにはならないが、より大きいファイルが追加されて作業されるにつれて問題は戻ってくるだろうし、仕事の歴史を失ってしまうだろう。

大きなファイルを直接コミットするのではなく、Git Large File Storage (git-lfs)を使用してください。これにより、大きなファイルをコミットし、リポジトリのサイズを大きくすることなく履歴を保持することができます。

これらの古いコミットはどうなりますか?任意の日付で履歴を切り取るのではなく、BFG Repo Cleanerを使用して履歴から大きなファイルを消去します。これにより、あなたの履歴を保持しながら最大の違反ファイルを排除することができます。

さらに良いを組み合わせることができます。 BFGは、あなたの既存の大きなファイルのコミットを、最近追加された--convert-to-git-lfsの小さなgit-lfsコミットに変換できます。 It's all documented in this blog post。これは、両方の世界のベストです:すべての履歴、すべてのファイルを保持し、スリムなリポジトリを取得します。それが終わったら、今後すべての大きなファイルにgit-lfsを使用してください。

+0

Ty!私はこれを試してみよう! – Max

関連する問題