web-dev-qa-db-ja.com

致命的なGit:リモートエンドが突然ハングアップしました

走ろうとしたとき

git Push Origin master --force

たった今

Counting objects: 2649, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (1280/1280), done.
error: RPC failed; result=22, HTTP code = 413 | 116 KiB/s   
fatal: The remote end hung up unexpectedly
Writing objects: 100% (2504/2504), 449.61 MiB | 4.19 MiB/s, done.
Total 2504 (delta 1309), reused 2242 (delta 1216)
fatal: The remote end hung up unexpectedly
Everything up-to-date

安全でないことと関係があるのでしょうか。 Fatal:リモートエンドが突然ハングアップして それを再度実行したのと同じように、公開鍵を作成しようとしましたが、まだ動作しません。私は実際に鍵を使っていませんか?もしそうなら、どうやって使うの?

217
DanielLC

これは に似ています - 新しいリポジトリの場合、githubをデフォルトでsshにし、httpsにしないようにするにはどうすればよいですか 。おそらく、httpプロトコルからsshに切り替えることを試みる価値があります。

$ git remote add Origin [email protected]:username/project.git
67
Vitalliuss

問題はgit/httpsバッファ設定によるものです。それを解決するために( からとられています - Gitはコミットをgithubにプッシュすると失敗します

git config http.postBuffer 524288000

そして、もう一度コマンドを実行してください。

454
Roman M

原因:Gitのデフォルトのファイル送信サイズを超えています。

解決策:

リポジトリに移動します。

次のコマンドを実行して、リポジトリに移動した後にバッファを500MBに増やします。

git config http.postBuffer 524288000
70
Chinu

このようなエラーになるかもしれません

エラー:設定ファイルをロックできませんでした。git/ config:そのようなファイルまたはディレクトリはありません

これはローカルの.git/configファイルを持っていないからです。

git config --global http.postBuffer 524288000

22
niksmac

私の場合、他の解決策はうまくいきませんでした。ガベージコレクションを行うことで解決しました。

git gc --aggressive

11
Shameen

このエラーは、 リポジトリへの書き込み権限の欠如 からもスローされる可能性があります。


私の具体的な例は次のようになりました。

  1. 私は自分のサーバーのrootユーザーと一緒に(SSH経由で)レポジトリを作成しました。
  2. gitサービスをインストールして そしてすべてのgit関連のアクションを管理するgit linuxユーザーを作成しました。
  3. その頃には、私はリポジトリが最初はrootユーザーで作成されていたことを忘れていました。そしてgitユーザーは単にリポジトリに何かを書き込むためのファイルパーミッションを持っていませんでした。
8
Loilo

問題を解決するには、単に既存のディレクトリ内にリポジトリを複製したのでしょう。単にリポジトリを別のディレクトリに複製し、その変更をこの新しいディレクトリに複製してからプッシュを実行するだけです。

3
Marcos Bahiense

私たちの場合、問題は読み取り専用のアクセス方法であるurlエントリを含む.git/configファイルを書いたクローンでした。 URLを://メソッドから@メソッドに変更することで問題が解決しました。

git remote -vを実行すると、問題がいくつか明らかになりました。

3
Frank P

他の答えの1つに反して - 私はsshを使用してプッシュで問題がありました - 私はhttpsに切り替えました、そして、それは修正されました。

git remote remove Origin
git remote add Origin https://github..com/user/repo
git Push --set-upstream Origin master
3
MikeB

もしあなたがWindows用にgitを使っていて(そしてあなたがこれをWindowsマシン上でやっているなら、あなたはたぶんそうです)、そしてここで他のどの修正もうまくいかなかったなら、 https://github.com/gitに行ってみてください。 -for-windows/git/release 、およびバージョン2.4.5以降のバージョンを取得する。私のためにそれを直しました。

2
rrreee

私はこのエラーに別の方法で遭遇し、グーグルがここに私を連れて行ったので、もう一つの追加。

私の問題は大文字と小文字の不一致でした。 1つのキャメルケースと1つのキャメルケース。どうやら、GITは理由を言わずにこれをやるのをやめます。あなたのブランチが大文字と小文字だけでリモートと異なるならば、それらが同一になるようにそれらを変えることを試みなさい。

参照: Git:マージ後、 'マスタはブランチに解決できません'

2
Thomas

これはあなたのOSXプラットフォームをアップデートした後に起こるかもしれません。

ターミナルを開き、あなたの.sshフォルダに移動して、ssh-add -K ~/.ssh/id_rsaと入力します。

2
cptstarling

.sshに誤ったキーペアがあると、このエラーが発生しました。 (設定で)githubにpubkeyを追加することは私にとってこの問題を解決しました。

1
Michel Samia

それは千ものの一つになることができるように思えます。

私にとっては、最初はSourceTreeを使ってmasterを開発して開発しました(masterには変更はありませんでした)。これを開発用に変更してもうまくいきました。

1
JakeSteam

私はたまたま引っ張ったときに同じエラーがありました。
"http.postBuffer"トリックを行いました。それはそれを解決しました、しかし、私がプッシュしたいときに、私は再びエラーに遭遇しました。

何が私の問題を解決しました:
1。他の仮想マシンで他のフォルダにクローンしました。 (Linux).
2。私は自分の変更をしました。
3。最初はプッシュできなかった元の仮想マシンでプッシュしました。 (Windows)

1
nopara73

私は同じ問題を抱えています。 SSHクローンのURLは次のような構造になっていることがgitのWebページからわかりました。

[email protected]:user/project.git

次のように ":"を "/"に変更するだけで問題を解決できます。

[email protected]/user/project.git

これは役に立つかもしれません。

1
David Romero

私は大きなレポをアップロードしているときに同様のエラーに直面していました。

たくさんの調査の後、私がしたことがあります。

  • HTTPSの代わりにSSHを使用しても、問題は解決しませんでした。
  • Http.postBufferを非常に大きな値まで増分的に増やしてください。
  • 私はそれがリポジトリ内の大きなファイル(これはperforceから新しく移行されたリポジトリであるため)のためであろうと考えました。 500M)これで問題は解決すると思いましたが、驚いたことにまだ同じエラーに直面しました。

追加のエラーメッセージが表示されないため、最後に、古いgitクライアントを使用している可能性があります。 I gitクライアントを最新の (2.20.1)にアップグレードしたところ、エラーが消えました。

1
Mahmoud Hanafy

PLESK NginxとGIT 私はplesk gitでこのエラーに遭遇していましたが、(何を知っているかと)大規模なレポをプッシュしながらHTTPコード413でこのエラーを出しました。 nginxはApache2と同じように動作しているので、ログを調べてnginxのログにエラーを見つけました。

続かれた このリンク より大きなファイルアップロードでpleskが設定を再構築することを可能にする。

私はgitのためにphpの部分をスキップしました

そのgitの後、Pushはエラーなく動作しました。

0
Farrukh Subhani

これは、プッシュしているコミットのいずれかが不正な形式の場合にも発生する可能性があります。

私は(無意識のうちに)不正なAuthor Emailフィールドを使用してコミットしましたが、取得したのはこのあいまいなremote end hung upエラーメッセージだけでした。私はこの one ブランチではなく他のブランチをプッシュすることができたので、最終的に着地するまで "悪い"ブランチから一度に1つコミットをプッシュし始めました。

Pushing to [email protected]:directangular/Unicorn.git
Counting objects: 100% (9/9), done.
Delta compression using up to 20 threads
Writing objects: 100% (5/5), 549 bytes | 549.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: error: object 74c7584ff0b93591c19d3a3c19695889dd2274d2: badEmail: invalid author/committer line - bad email        
remote: fatal: fsck error in packed object        
error: remote unpack failed: index-pack abnormal exit
To github.com:directangular/Unicorn.git
 ! [remote rejected]       pizzafeast -> pizzafeast (failed)
error: failed to Push some refs to '[email protected]:directangular/Unicorn.git'

remote end hung up unexpectedlyエラーは実際のエラーメッセージを「飲み込む」ようなもので、私がここで持っているようにおそらくこれはある種の不正なコミットです。

不正な形式の電子メールを修正した後、私はうまくプッシュすることができました。

0
mgalgs

リモートブランチ名のスペルを間違えたときにこのエラーが発生しました

0
javaProgrammer

1)プロジェクトディレクトリに移動します。

2)git status

3)git checkout -f HEAD

4)リポジトリが不完全だった場合は、マスターをもう一度引き下げて最新の状態にしてください。

Bitbucketからリポジトリを複製するときに、Visual StudioのGitから問題のエラーが発生した場合、これは機能します。

0
whyoz

答えを追加することはほとんど無意味に思えますが、私はそれが散発的な機能停止に苦しんでいるのがVisual Studio Onlineであることを最終的に発見したとき、私は長年にわたってこれと戦っていました。 VSがクレジットの入力を要求し続け、VSOのWebサイトが500を提示したときに、それが明らかになりました。

Counting objects: 138816, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (38049/38049), done.
error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
The remote end hung up unexpectedly/138816), 33.30 MiB | 3.00 KiB/s
Writing objects: 100% (138816/138816), 50.21 MiB | 3.00 KiB/s, done.
Total 138816 (delta 100197), reused 134574 (delta 96515)
fatal: The remote end hung up unexpectedly
Everything up-to-date

私は実際にはそれが多くの小さな投稿でよりうまく機能すると思うので、私はHTTP投稿バッファをその後2Mbに戻しました。

ルカ

0
Luke Puplett

私はGit Shellを使ってこの問題を回避することができました。

Github.com内の各リポジトリには、Shellを使用してダウンロードするために使用できるHTTPS/SSH/SubversionのURLが記載されています。 http://prntscr.com/8ydguv を参照してください。
GitHubの最近の変更に基づいて、SSHが最良の方法のようです。

シェルで使用するコマンド:

git clone "URL of repo goes here w/ no quotes"
0
David

あなたが使っている鍵を見るためにこれをしてください。 ssh -vT [email protected]

それからあなたのビルドであなたが最初にこれを実行していることを確認してください。 eval "$(ssh-agent -s)" ssh-add〜/ .ssh/id_rsa

0
ddtraveller