7

githubにプッシュできません。少し変更を加えることができましたが、今回は次のように書き込んだ後にハングします。

git push origin master
Counting objects: 22, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.51 KiB, done.
Total 12 (delta 8), reused 0 (delta 0)

Ubuntu Process Managerで、何かをプッシュしようとするとsshがハングするのを確認しました。これは、ssh git@github.com git-receive-pack'xxx /yyy.git'です。

端末でこのコマンドを直接実行しようとすると、次のように書き込んだ後にハングします。

0078...7d4 refs/heads/master report-status delete-refs side-band-64k quiet ofs-delta
0000

他のすべてのシンはうまく機能しますが、プッシュできません。理由は何でしょうか?

追加情報:gitファイルを再作成し、リモートをSSHからHTTPに変更しました。プッシュしようとすると、このエラーが発生します。

Counting objects: 17, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.19 KiB, done.
Total 9 (delta 6), reused 0 (delta 0)
error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

追加情報2:何時間もテストしましたが、ネットワーク接続に問題があるようです。別の接続からプッシュしようとしましたが、非常にうまくいきました。この背後にある理由は何でしょうか?ちなみに、モデムのファイアウォールは無効になっています。

4

5 に答える 5

13

同様の問題を修正するために、過去 5 時間を費やしました。まず、これをトンネルまたは VPN 接続で実行していますか?

トンネルの MTU (Maximum Transmission Unit) は、ネットワーク パスの途中にある一部のルーターがより低い MTU しかサポートできないという点で誤って構成されている可能性があることが判明しましたが、これは VPN/トンネル ソフトウェアに知られていないため、パケットがドロップされます。 .

したがって、簡単な答えは、接続の MTU を下げることです。

sudo ifconfig eth0 mtu 1300

ここでは、インターフェイスの MTU を設定していeth0ます。git サーバーへのアクセスに実際に使用しているインターフェイスに置き換えます。デフォルトの MTU は通常 1500 です。

OpenVPN の場合、tun0インターフェイスを更新する必要がありました。OpenVPN 構成でこれを行うためのより良い/より堅牢な方法があります:link-mtu <n>およびmssfixオプションを使用します。

于 2015-04-21T15:25:29.043 に答える
6

私の場合、問題はリポジトリへのアクセス権に関連していました。書き込み権限を追加した後、読み取り専用アクセスがありましたが、問題は解決しました。

于 2013-08-01T10:55:13.783 に答える
0

私も同じことが起こりました。原因は受信側のディスクが 100% フルでした。

于 2019-05-09T09:35:47.423 に答える
-1

最初に次を実行します。

env | grep SSH_ASKPASS

何も得られない場合は、その値を設定する必要があります。GNOME を使用している場合はgnome-ssh-askpass.sh、次の手順を実行して、通常見つかる場所を見つけます。

find / | grep gnome-ssh-askpass

通常は/etc/profile.dディレクトリにあります。通常、これは自動的に読み込まれますが、何らかの理由で読み込まれませんでした。したがって、次を実行します。

source /etc/profile.d/gnome-ssh-askpass.sh

(または、chmod +xファイルだけを直接実行することもできます。それはあなた次第です)

完了したら、値があることを確認するenv | grep SSH_ASKPASSと、git push が再び機能します。

gnome-ssh-askpass.shファイルが見つからない場合は、yum search ssh-askpassそのパッケージを実行してインストールします (通常はyum install openssh-askpass) 。

についてapt-getは、gnome を使用していると仮定して同様のことを行いますが、kde の場合はkde-ssh-askpass?? がある可能性があります。

于 2015-01-20T16:46:41.560 に答える
-2

ネットワーク接続のアップロードが遅すぎるかどうかを確認してください。多分あなたはただ時間が必要です。ネットワーク接続を監視して、データをアップストリームに送信しているかどうかを確認できますか?

于 2012-12-12T00:39:26.143 に答える