web-dev-qa-db-ja.com

Gitプルが非常に遅いです。なぜですか?

注: git-is-very-very-slow の質問を調査しましたが、その場合、その理由は大きなバイナリファイルでした-私のリポジトリにはPHP/JS/HTML/CSSのみのコードがあります(バイナリなし)、リポジトリ内の最大ファイルは約800 KBです。

1つのファイル(数行)を変更した後、git add .およびgit commit -m "msg"、次にgit Push Origin master

他のマシンでは、git pull Origin master数MiBのデータをダウンロードし、デルタの計算と変更の適用に2分以上かかります。ここで何かがひどく間違っています。

最近のいくつかの操作がこれを引き起こす可能性があると思います:

最近、誤って多くのベンダー資産を追加しました(bower_components資産)気づいたとき、git rmリポジトリから削除します(そしてもちろん、git addgit commitおよびgit Push上流へ)

それは数日前で、私が今抱えている問題はその頃に起こり始めました。

2つの質問があります。

  • なぜこれが起こっているのですか?
  • リポジトリを修正するにはどうすればよいですか?

注:このレポを使用してプッシュするのは私だけです。

23
ioleo

問題はEmberJS appディレクトリにありました。 node_modulesおよびbower_components JSおよびCSSアセットを構築するためにGruntJSによって使用されるサードパーティライブラリを保持するディレクトリ。

これらのそれぞれには多くのファイルとディレクトリが含まれていました。依存ツリーには、小さな(数個のファイル)から大きな太い(多くのファイル)までサイズが異なるライブラリが数百個含まれていることを考慮してください。

これらのディレクトリを削除して無視すると、gitリポジトリは再び高速に動作します。

3
ioleo

同様の経験がありました-ローカルのMac OSXとLinux/Apacheサーバーの両方で、git pullとPushが突然極端に遅くなり、10分以上かかります。 Macでリポジトリのローカルコピーを削除し、クローンを再作成すると、正常に動作し始めました。サーバーで同じことをしましたが、すべてが順調です。私はそれが何らかの形で破損したと思いますか?

4
NessBird

何千もの小さなファイルを扱っていたとき、私は同じ問題を抱えていました。私のためにそれを修正したのは、git repoの設定でポストバッファを設定することでした

git config http.postBuffer 524288000

18KB /秒でアップロードする代わりに、突然全帯域幅を使用しました

1
Sander Stad