Gitリポジトリからフェッチまたはプルするとき、またはリポジトリを複製するとき、私はこのポイントに到達します:
remote: Counting objects: 6666, done.
remote: Compressing objects: 100% (5941/5941), done.
Receiving objects: 23% (1534/6460), 11.68 MiB | 23 KiB/s
そしてハングします。 23%/オブジェクトの数は指定されていません。1桁から60年代までの範囲にあるようです。また、リストされているダウンロードの速度がフリーズします。ゼロに向かってゆっくりとクロールするわけではありません。
隣に座っている人には問題がないので、ルーターの問題ではありません。私たちは作業リポジトリにbeanstalkを使用していますが、beanstalkとgithubに問題があります(ときどき、githubが終了するようです)。
この問題は、Mountain LionにアップグレードしてXcodeを更新してから発生したようです。 git(XCodeを含む)を消去し、homebrewでインストールしてみました。それはうまくいかなかったので、私はそれを削除し、提供されたMacインストールパッケージで試してみましたが、これも問題を修正しませんでした。
Beanstalkはgitリポジトリ用のSSH URLを提供しますが、SCPまたはSSHを介して作業したサーバーに接続することに問題はありませんでした。
これは私のワークフローを殺しているので、どんな助けも大歓迎です!
VMware on [〜#〜] nat [〜#〜]はこの問題を抱えていました。 ブリッジ(状態を複製)に変更すると、問題が修正されました。
ネットワーク接続を確認してください。ルーティングテーブルにゴミが含まれている可能性があります。ルーターのポートが壊れているか、コンピューターのネットワークインターフェイスに問題がある可能性があります。 gitリポジトリのクローンを作成するサーバーにpingを実行してください。コンピューターとこのサーバー間のリンクが不安定である可能性があります。
私の問題に似ています。 Gitは、一定の短い時間の後、フェッチまたはプッシュでハングしたようです。 ~/.ssh/config
:
Host *
ServerAliveInterval 60
私もマウンテンライオンとMBPを持っています。このタイムアウトが問題の原因であることを願っています。 (30分か40分かそこらで、それが続いていることに気づきました。)
Macでは、Git 2.22(2019年第2四半期)で、この種の問題に対するgit fetchの耐性が向上するはずです。「git fetch」がSIGPIPE(OSXなど)で強制終了されるプラットフォームでは、他方で実行される_upload-pack
_エラーを検出した後に電話が切れると、「_git fetch
_」が信号で死ぬ可能性があり、それがフレークテストにつながりました。
"_git fetch
_"は、操作のネットワーク部分でSIGPIPEを無視するようになりました(write(2)sからの戻りステータスを確認するため、これは問題ではありません)。
commit 1435889 (2019年3月3日)、および commit 37c8001 (2019年3月5日) Jeff King(peff
) を参照してください。
( C浜野順夫-gitster
- in commit 27cdbdd 、2019年3月20日)
fetch
:ネットワーク操作中はSIGPIPE
を無視しますデフォルトの
SIGPIPE
動作は、大量の出力を生成するコマンドに役立ちます。出力の受信者がなくなると、(通常はプログラムを強制終了することで)生成を停止するように非同期で通知されます。しかし、主にデータの受信とディスクへの書き込みに関係する
fetch
のようなコマンドの場合、予期しないSIGPIPE
が厄介になる可能性があります。すでにすべてのwrite()
呼び出しの戻り値をチェックしており、シグナルのために死ぬことでエラーを適切に処理する機会がなくなります。Linuxでは、一般にフェッチ中に
SIGPIPE
はまったく表示されません。ネットワーク接続の反対側が電話を切ると、ECONNRESET
が表示されます。
しかし、OS XではSIGPIPE
を取得し、プロセスは強制終了されます。フェッチのネットワーク部分では
SIGPIPE
を無視します。これにより、write()
がEPIPE
を返し、プラットフォーム間で一貫した動作が得られます。