Ich habe nur einen Zweig. Seit ein paar Monaten benutze ich
git push origin master
in mein lokales Repository zu verpflichten. Letzte Nacht, nachdem ich einige geringfügige Änderungen an meinem lokalen Repository vorgenommen und versucht habe, mit demselben Befehl zu pushen, wurde folgende Fehlermeldung angezeigt:
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
Ich habe gegoogelt und Fragen wie diese und diese gefunden , aber keine der Antworten auf diese Fragen löst mein Problem.
Die meisten Antworten deuten auf das Problem des abgetrennten Kopfes hin . Trotzdem glaube ich nicht, dass mein Kopf losgelöst ist. Ich glaube auch nicht, dass ich auf dem falschen Zweig bin (da ich nur einen Zweig habe ...)
Ich habe ein paar Experimente durchgeführt, um herauszufinden, was falsch ist, und hier sind die Ergebnisse, die ich erhalten habe:
(1) Zuerst kommt meine git status
Ausgabe
# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # egal.aux # egal.blg # egal.out # egal.pdf # egalcar.aux # egalcar.blg # egalcar.pdf nothing added to commit but untracked files present (use "git add" to track)
(2) Wenn ich tippe git reflog
, kann ich alle meine lokalen Commits sehen, aber das Remote-Repository wird einfach nicht aktualisiert.
(3) Wenn ich tippe git branch -a
, bekomme ich
* master remotes/origin/master
(4) Wenn ich tippe git remote show origin
, bekomme ich
* remote origin Fetch URL: http://github.com/CherryQu921/egaldoc_en Push URL: http://github.com/CherryQu921/egaldoc_en HEAD branch: master Remote branch: master tracked Local ref configured for 'git push': master pushes to master (fast-forwardable)
Ich denke, die letzte Ausgabezeile (die "Schnellvorlauf") ist komisch, aber ich bin mir nicht sicher, was falsch ist ...
fast-forwardable
bedeutet, dass Sie Ihre lokalen Änderungen auf die Remote-Niederlassung übertragen können, nichts Kriminelles :-)Antworten:
Wenn Sie versuchen, eine große Anzahl von Änderungen mit HTTP oder HTTPS in ein Git-Repository zu übertragen, wird möglicherweise eine Fehlermeldung angezeigt, z
RPC failed; result=22, HTTP code = 411
. Dies wird durch einen Git-Konfigurationsstandard verursacht, der bestimmte HTTP-Vorgänge auf 1 Megabyte beschränkt.Um dieses Limit zu ändern, führen Sie es in Ihrem lokalen Repository aus
Dabei ist Bytes die maximal zulässige Anzahl von Bytes. Beispielsweise:
Für 500 MB (danke @Hengjie)
quelle
git config http.postBuffer 524288000
für 500 MB./etc/nginx/sites-available/gitlab
). Weitere Informationen: github.com/gitlabhq/gitlabhq/issues/3099RPC failed; result=22, HTTP code = 502
?Sie können dies auch global tun -
Dadurch können alle lokalen Repos bis zu 500 MB Daten übertragen.
quelle
Keine der angebotenen Lösungen hat bei uns funktioniert. Wir mussten zu wechseln,
ssh
damit dies anstelle derHTTPS
Lösung funktioniert .quelle
Wenn Sie TortoiseGit für Windows verwenden, verwenden Sie am einfachsten die integrierte Konfiguration.
Wählen Sie in einem Datei-Explorer mit der linken Maustaste TortoiseGit -> Einstellungen . Akzeptieren Sie die Info-Nachricht. Jetzt können Sie auswählen, ob Sie die Eigenschaft nur für das aktuelle Projekt oder das gesamte System konfigurieren möchten. Für eine systemweite Konfiguration klicken Sie auf "systemweite gitconfig bearbeiten" und fügen Sie die nächste Zeile zum Abschnitt hinzu
[http]
:(Wenn der Abschnitt
[http]
nicht existiert, erstellen Sie ihn)quelle
Ich habe den 22 Fehler wie folgt gelöst: Im Befehl "git clone" habe ich NICHT das user: password angegeben. Der Klon hat funktioniert, aber nicht der Push. Lösung für den 22 Fehler: Ändern Sie die URL .git / config wie folgt: url = http: // user: pwd @ host / ... Dann funktionierte der Push.
quelle