GIT: Kann nicht drücken (seltsames Konfigurationsproblem)

8

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 :

%Vor%

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:

%Vor%

... 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:

%Vor%     
Leng 13.01.2014, 04:09
quelle

3 Antworten

4

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.

    
Leng 13.01.2014, 04:58
quelle
2

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:

%Vor%

Die Lösung bestand darin, diese Einstellung aus der Konfiguration der Fernbedienung zu entfernen.

    
Chris Merck 26.09.2014 17:48
quelle
2

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:

%Vor%

Nach der Eingabe des obigen Befehls hat sich meine ~/.gitconfig -Datei auf dem entfernten Rechner folgendermaßen geändert:

%Vor%

Versionsinformationen:

  • Remote-Rechner (Repository-Speicherort): 1.9.4
  • Mein Laptop: 1.8.5.2 (Apple Git-48)
  • Anderer Computer an dem ich arbeite: 1.7.7.4

Hier ist eine andere Seite, die für einige Leute nützlich sein könnte: Ссылка

    
jvriesem 12.06.2014 22:00
quelle

Tags und Links