【Git】push 時に fatal: the remote end hung up unexpectedly が出たときの対応

今回 Git から push したときに出くわしたエラーと対応です。

更新ファイルには巨大なものも多く ギガクラスの push でのエラーでした。

push 後の Write の途中で同じタイミングで以下のエラーが出て中断しました。

fatal: the remote end hung up unexpectedly
fatal: sha1 file '<stdout>' write error: Broken pipe
fatal: the remote end hung up unexpectedly

以前 サーバーのメモリ(8G)が足りなくなって push できなくなることがあったので top を使って メモリを監視しながら push してましたがメモリは全然余裕です。

その他にファイルサイズ制限もかけていない環境です。

どうやらクライアント側の問題のようで こちら を参考に対応して成功しました。

ssh で転送する際に ファイルが大きすぎると クライアントが時間がかかって timeout してしまうのが原因のようなので、定期的に ping を送るように設定します。

クライアントは Windows なので

[Gitのインストールフォルダ]/Git/etc/ssh/ssh_config

を編集します。

保護されているファイルなので 一旦デスクトップ 辺りにコピーして 編集します

次のセクションを追加します。

Host *
     ServerAliveInterval 30
     ServerAliveCountMax 4

編集後もとにあった場所に戻して 再度 git push します。

意味は 30 秒ごとに 4回 ping 送るので 30×4=120秒 信号来なかったら timeout 扱いにしてね。というものです。たぶん

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です