Ich bin auf einer Neuinstallation von Linux Mint.
Ich erhalte den folgenden Fehler, wenn ich versuche, von einem Repository zu pushen:
%Vor%Das ist sehr merkwürdig, weil ich definitiv eine Version habe, die das einfache Push-Verhalten unterstützt.
Die Ausgabe von git --version
ist git version 1.8.3.2
.
Der Inhalt von ~/.gitconfig
:
Hier wird es gruselig.
Wenn ich das Verhalten in matching
(oder in nothing
, tracking
oder current
) ändere, dann versuche zu pushen, bekomme ich die gleiche genaue Fehlermeldung. Wie ist das möglich? Wird die Konfiguration irgendwie zwischengespeichert? Ich habe sogar versucht, neu zu starten. Ich habe sogar versucht, GIT vollständig aus dem System zu entfernen (und ~/.gitconfig
zu löschen) und es dann neu zu installieren.
Wenn ich den [push]
-Abschnitt vollständig aus der .gitconfig-Datei lösche (oder wenn ich die Datei vollständig lösche), dann versuche zu pushen, dann bekomme ich folgendes:
... so scheint es, dass beide anerkennt, dass ich kein Push-Verhalten gewählt habe, aber dann auch sage, dass ich ein nicht unterstütztes Verhalten gewählt habe. Was um alles in der Welt geht hier vor?
Ich bekomme sogar den Fehler, wenn ich ~/.gitconfig
komplett lösche.
Kann mir jemand mit dieser Hexerei helfen?
Danke!
BEARBEITEN:
Hier ist eine .git/config
Datei angefordert:
Okay, also habe ich es behoben, aber die Methode ist absolute Hexerei .
Ich habe versucht, das Problem zu isolieren, indem ich GIT löschte, die Konfigurationsdatei löschte, GIT neu installierte, dann ein lokales blankes Repository erstellte, es dann klonte und dann versuchte, von dort zu pushen. So ähnlich:
%Vor%... genau dieselbe Fehlermeldung, keine Änderung dort. (Immer noch eine ernste Hexerei.)
Dann löschte ich eines meiner Repositories, das keinen lokalen Ursprung hat (es verbindet sich mit seinem Ursprung über SSH) und klonte das Repository erneut, nachdem es gelöscht wurde (mit einem neuen git clone ssh://...
-Befehl).
Ich habe einen Fehler vom clone-Befehl bekommen:
%Vor% Ah ha! Jetzt heißt es remote
anstelle von error
. Daher unterstützt die Fernbedienung dieses Verhalten nicht. (Dies erklärt jedoch nicht, warum der Fehler in lokalen Repositorys mit lokalem Ursprung weiterhin besteht.)
Also habe ich dann SSH in den Remote-Server und aktualisiert den Git-Core dort auf die neueste Version, versuchte erneut, das Repository von meinem lokalen Rechner zu klonen, und es hat funktioniert.
Jetzt kann ich endlich git push
. Wahnsinnig, das hat es auch behoben, also kann ich git push
von vollständig lokal /var/www/foo
bis auch ganz lokal /git/foo
(die lokaler Ursprung bare Repository). SSH 'in diesen Remote-Server und aktualisieren Sie es irgendwie - WITCHCRAFT - Fehler meines lokalen Computers behoben.
Warum in aller Welt kümmern sich die ganz lokalen Repos um die GIT-Version einer ganz anderen Maschine ... über mich hinaus. Wie völlig, völlig verrückt.
Ich hatte die gleiche Fehlermeldung am git push
.
Für mich stellte sich heraus, dass der git des entfernten Benutzers eine ältere Version war (1.7.2.5),
und ich hatte kürzlich das Remote ~/.gitconfig
aktualisiert, um Folgendes einzuschließen:
Die Lösung bestand darin, diese Einstellung aus der Konfiguration der Fernbedienung zu entfernen.
Da es scheint, dass andere Leute dieses Problem haben, und ich fand eine Lösung HIER , ich dachte, ich würde die Lösung posten, die für mich funktioniert hat.
Kurz gesagt: Die Lösung, die ich gefunden habe, war diese Seite . Offensichtlich ist die beste Lösung ein Upgrade auf eine neuere Version von Git (wenn möglich). Das war für mich keine Option. Von einer lokalen Maschine habe ich den folgenden Befehl eingegeben:
git config -–global push.default upstream
Das hat den Malformed value for push.default: simple
Fehler beseitigt, den ich bekommen habe. Ich bin mir nicht ganz sicher, was upstream
jedoch tut.
MY CONTEXT (zum Vergleich): Ich hatte ein leeres ( bare
) Repository auf einem Remote-Computer und ich hatte ein paar Repositorys auf ein paar "lokalen" Workstations. I pull
aus dem Remote-Repository, mache etwas Arbeit, und dann push
meine Arbeit in das Remote-Repository. Schieben / Ziehen wurde über SSH erreicht. Während der Arbeit an einer lokalen Maschine würde das Schieben / Ziehen meistens zu dem oben beschriebenen Fehler führen.
Kurz gesagt, vor dem Update hatte ich die folgende Datei ~/.gitconfig
auf dem Remote-Rechner:
Nach der Eingabe des obigen Befehls hat sich meine ~/.gitconfig
-Datei auf dem entfernten Rechner folgendermaßen geändert:
Versionsinformationen:
Hier ist eine andere Seite, die für einige Leute nützlich sein könnte: Ссылка