2012-11-01 13 views
8

2つの大きなファイルをリポジトリ(それぞれ150MB)に追加しましたが、git pullは常に54%でハングします。私はpingを使ってネットワークをチェックし、別のものを使って試しました、私はgit fsckなどをしました。デバッグ:git pull中にGitプル(常に54%)

  • これをどのようにデバッグできますか?

  • 一度に大きなファイルの1つをフェッチする方法はありますか?問題は、私の地元のgitは=最後のコミットを知っていないということである - 。(

+0

巨大なファイルを効率的に管理するには、['git-annex'](http://git-annex.branchable.com/)の使用を検討する価値があります。詳細はhttp://stackoverflow.com/a/6635160/429758を参照してください。 –

+0

ありがとう!私は間違いなくそれに行きます。しかし、リモートリポジトリから2つのファイルを削除しても、私は引き出すことができません。オブジェクトの数は今大きくなります。それにもかかわらず、gitはフリーズする –

+0

git-configでメモリサイズ制限を変更しようとするかもしれません(pack.packSizeLimit core.packedGitLimitたとえば – Zermingore

答えて

0

私はあなたが持っている問題は、あなたのクローンが途中で毎回オフ破ると思い

ので、代わりにスクラッチ毎回から何度も何度もレポをクローニングし、私はあなたの代わりに新規に作成したレポでフェッチを行うことをお勧め。

を基本的には、空のリポジトリを初期化

cd repo_name && git init 

目を追加このレポ

git remote add origin url/to/repo 

そして今git fetchを行うリモートとして電子オリジナルのレポ。

この方法では、クローンが途中で途切れても、fetchは、次回の実行時にのみ、フェッチされていないオブジェクトを持ち込むように注意します。

1

しかし、リモートリポジトリから2つのファイルを削除しても、私は引き出すことができません。

「2つのファイルを削除する」とはどういう意味ですか?

リポジトリの履歴にあるすべてのコミットから削除する必要があります。これを行うには

は、例えば以下を参照してくださいHow to remove/delete a large file from commit history in Git repository?


あなたgit pullが本当に停止したか、単に非常に遅いされているかどうかを確認するには:あなたのcompouterと、中央リポジトリをホストするサーバー間のネットワークトラフィックを確認してください。


あなたは2つの大きなファイルを取得するための別の方法がある場合(例:USBメモリからローカルリポジトリにコピーし...)あなたがからこれらのファイルに(git commitを実行していない)git addを実行することができますローカルリポジトリ、次にgit reset .を使用してそれらをステージングします。

これらのファイルは、ローカルリポジトリの既知のオブジェクトのリストに追加する必要があります。また、git pullを再度ダウンロードする必要はありません。

0

Gitのバッファサイズを増やし:

gitの設定--global http.postBuffer 157286400

サイズが問題を解決する最小値に設定されるべきです。