Gitのクローン中にリモート側が予期せずハングアップしました 質問する

Gitのクローン中にリモート側が予期せずハングアップしました 質問する

gitしばらくリポジトリのクローンを試行した後、クライアントが次のエラーで繰り返し失敗します。

ここで何が問題なのでしょうか?

注: SSHキーをGITホスティングプロバイダーに登録しました

Receiving objects:  13% (1309/10065), 796.00 KiB | 6 KiB/s
fatal: The remote end hung up unexpectedly

ベストアンサー1

簡単な解決策:

この種のエラーが発生した場合、通常は次postBufferのようにしてサイズを大きくすることから始めます。

git config --global http.postBuffer 524288000

(以下のコメントの中には、値を 2 倍にする必要があると報告しているものもあります):

git config --global http.postBuffer 1048576000

(のためにnpm publishマーティン・ブラウンレポートコメント欄デフォルトの 1 000 000 ではなく 50 000 000 以下に設定する)

詳しくは:

からgit configマニュアルページは、http.postBuffer次の内容についてです。

リモート システムにデータを POST するときにスマート HTTP トランスポートが使用するバッファの最大サイズ (バイト単位)。
このバッファ サイズより大きい要求の場合、Transfer-Encoding: chunkedローカルで大規模なパック ファイルを作成しないように、HTTP/1.1 が使用されます。デフォルトは 1 MiB で、ほとんどの要求にはこれで十分です。

クローンであっても、それは影響を及ぼす可能性があり、この例では、OPジョーレポート:

[クローン]は正常に動作するようになりました


注: サーバー側で何か問題が発生し、サーバーが Git 2.5+ (Q2 2015) を使用している場合、エラー メッセージはより明確になる可能性があります。
Git クローン: リモート エンドが予期せずハングアップし、変更を試みましたpostBufferが、それでも失敗します「」。


クライコメント欄)は指摘するこのAtlassianトラブルシューティングGitページ、さらにこう付け加えている。

Error code 56curl がエラーを受信したことを示します。これはCURLE_RECV_ERROR、クローン作成プロセス中にデータを受信できない問題が発生したことを意味します。
通常、これは、すべてのデータが転送される前に接続を終了するネットワーク設定、ファイアウォール、VPN クライアント、またはウイルス対策によって発生します。

また、デバッグ プロセスを支援するために、次の環境変数についても説明します。

# Linux
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1

Git 2.25.1 (2020 年 2 月) では、このhttp.postBuffer「解決策」についてさらに詳しく知ることができます。

見るコミット 7a2dc95コミット 1b13e90(2020年1月22日)ブライアン・M・カールソン ( bk2204)(合併者
ジュニオ・C・ハマノ -- gitster--コミット 53a8329、2020年1月30日)
Gitメーリングリストの議論

docs: http.postBufferを増やすことが有益であるときについて言及する

署名者: ブライアン・M・カールソン

さまざまな状況のユーザーが HTTP プッシュの問題に直面します。

多くの場合、これらの問題はウイルス対策ソフトウェア、フィルタリング プロキシ、またはその他の中間者攻撃の状況が原因です。また、ネットワークの単純な信頼性の低さが原因である場合もあります。

ただし、オンラインで見つかる HTTP プッシュの問題に対する一般的な解決策は、http.postBuffer を増やすことです。

これは前述のいずれの状況でも機能せず、接続が HTTP/1.1 を適切にサポートしていない場合など、ごく限られた少数のケースでのみ役立ちます。

この値を上げることが適切な場合と、それが実際に何を行うかを文書化し、プッシュの問題に対する一般的な解決策としてこれを使用しないように推奨します。その場合、この値は効果的ではありません。

ドキュメントはgit config http.postBuffer以下が含まれるようになりました:

http.postBuffer

リモート システムにデータを POST するときにスマート HTTP トランスポートが使用するバッファの最大サイズ (バイト単位)。
このバッファ サイズより大きい要求の場合、ローカルで大規模なパック ファイルを作成しないように、HTTP/1.1 および Transfer-Encoding: chunked が使用されます。
デフォルトは 1 MiB で、ほとんどの要求には十分です。

この制限を上げると、チャンク転送エンコーディングを無効にする場合にのみ効果があるため、リモート サーバーまたはプロキシが HTTP/1.0 のみをサポートしているか、HTTP 標準に準拠していない場合にのみ使用してください。
一般に、この制限を上げることは、ほとんどのプッシュの問題に対する効果的な解決策ではありませんが、小さなプッシュでもバッファー全体が割り当てられるため、メモリ消費が大幅に増加する可能性があります

おすすめ記事