Ich habe irgendwie das gesamte Verzeichnis meines Code-Zweigs gelöscht. Ich habe einen neuen geklont. Es funktionierte gut, außer zu schieben.
~/workspace/wtf (mybranch)]$ git push origin mybranch
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed
Git Pull funktioniert jedoch. Wie kann ich es reparieren?
http.receivepack
.Antworten:
Ich habe den Fehler gemacht, https anstelle von ssh für eine neue Kopie zu verwenden. Ich habe seitdem Änderungen und Commits vorgenommen, konnte aber aus offensichtlichen Gründen keine Pushs durchführen.
Zur Wiederherstellung habe ich einfach den Abschnitt [remote "origin"] in .git / config von geändert
zu
Danach konnte ich wieder pushen.
quelle
git-http-push failed
, ich sehe, dass der op versucht, Dinge entweder über http oder https, -1 einzurichten.Schnellerer HTTP-Push mit nur git - webDAV ist nicht erforderlich
Die neue "smart-http" -Unterstützung seit git 1.6.6. Mit der neuen Methode kann das gesamte Paket auf einmal und nicht als einzelne Dateien übertragen werden.
Sie können gitweb auch verwenden, um an derselben Stelle URLs zum Aufrufen bereitzustellen.
Hinweis: Da der Zugriff von Apache gesteuert wird, können Sie dem Setup für jedes Repository beliebige Authentifizierungsanforderungen (htaccess oder ldap usw.) hinzufügen.
Diese Antwort setzt voraus, dass Sie den Remote-Server besitzen und die http-Unterstützung hinzufügen / korrigieren möchten.
ZUERST: Überprüfen Sie die Apache-Protokolle. Es ist wahrscheinlich, dass eine Berechtigung verweigert wurde / kein Fehler gefunden werden konnte, wenn Apache versucht, die git-http-gesicherten CGI-Skripte auszuführen.
Hinzufügen von HTTP-Unterstützung zu Git
Erstellen Sie einfach eine neue git_support.conf-Datei und fügen Sie sie in Apache ein (fügen Sie die include-Anweisung in httpd.conf hinzu).
Das Ergebnis ist die Fähigkeit zum Drücken / Ziehen:
Und Sie können diese Änderungen online durchsuchen.
Quelle: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
quelle
"SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."
- warum?Um einen " Git-Push " über http zu aktivieren, müssen Sie WebDAV auf dem Webserver aktivieren. Bearbeiten Sie dazu für Apache Webserver einfach die Konfigurationsdatei:
Dann suchen Sie die Zeile beginnend mit:
Fügen Sie unmittelbar danach die folgende Zeile hinzu:
Stellen Sie sicher, dass Sie die folgende Zeile auch in der httpd.conf unkommentiert haben:
Danach sind Sie bereit. Starten Sie den Apache Webserver neu mit:
Stellen Sie außerdem sicher, dass alle Git-Repository-Dateien auf dem Server vom pache: apache-Benutzer und der Gruppe beschreibbar sind. Verwenden Sie dazu:
Andernfalls führt das Nichteinstellen der richtigen Berechtigungen zu "PUT-Fehler: Ergebnis der Aufrollung = 22, HTTP-Code = 403", wenn ein "Git-Push" ausgeführt wird.
Führen Sie jetzt einfach einen "Git-Push" von Ihrem Client-Computer aus, und alles sollte funktionieren.
quelle
Sie können ein über HTTP geklontes Repository nicht pushen. Sie müssen die URL entweder auf eine URL
ssh://
oder auf einegit://
Typ-URL aktualisieren .quelle
git remote -v
?Bearbeiten Sie den folgenden Abschnitt Ihrer .git / config-Datei:
zu
Dann versuche es
git push origin master
.Bearbeiten Sie die Authentifizierungsdetails in Ihren Konfigurationsdateien für andere Repository-URLs nach Bedarf und senden Sie sie an den gewünschten Zweig.
quelle
git remote set-url origin ...
funktioniert auch.Ich hatte das gleiche Problem mit Push-Betrieb mit Git-http-Backend, LDAP-Authentifizierung Config.
Endlich habe ich die Lösung gefunden und in dieser Serverfehlerfrage beschrieben
Vielleicht hilft es jemandem mit ähnlichem Problem.
quelle
Groß
Ich hatte andere Fehler, aber es funktioniert!
ich versuche zu erklären:
Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
user1520409
seinen Arbeiten verwendet.ABER wie versteckt man das Passwort vor dem Text in der Push-Nachricht?
quelle
Dies kann auch passieren, wenn Sie ein falsches Passwort eingegeben haben.
quelle
fatal: Authentication failed
zuerst