it-swarm.com.de

Warnung: Push.default ist nicht gesetzt. Der implizite Wert ändert sich in Git 2.0

Ich verwende Git seit einiger Zeit und habe kürzlich ein Update heruntergeladen, bei dem nur diese Warnmeldung angezeigt wird, wenn ich versuche, Push.

warning: Push.default is unset; its implicit value is changing in 
Git 2.0 from 'matching' to 'simple'. To squelch this message 
and maintain the current behavior after the default changes, use: 

  git config --global Push.default matching

To squelch this message and adopt the new behavior now, use: 

  git config --global Push.default simple

Ich kann es natürlich auf einen der genannten Werte einstellen, aber was bedeuten sie? Was ist der Unterschied zwischen simple und matching?

Wenn ich es auf einem Client ändere, muss ich dann irgendetwas auf anderen Clients tun, mit denen ich Repos teile?

1607
Marko

Es wird ausführlich in den Dokumenten erklärt, aber ich werde versuchen zusammenzufassen:

  • matching bedeutet git Push wird alle Ihre lokalen Zweige zu denen mit dem gleichen Namen auf der Fernbedienung verschieben. Dies macht es einfach, versehentlich einen Zweig zu verschieben, den Sie nicht beabsichtigt haben.

  • simple bedeutet git Push wird nur den aktuellen Zweig zu dem schieben, den git pull von ziehen würde, und auch überprüft, ob ihre Namen übereinstimmen. Dies ist ein intuitiveres Verhalten, weshalb die Standardeinstellung in dieses geändert wird.

Diese Einstellung wirkt sich nur auf das Verhalten Ihres lokalen Clients aus und kann außer Kraft gesetzt werden, indem explizit angegeben wird, welche Zweige Sie in der Befehlszeile pushen möchten. Andere Clients können andere Einstellungen haben . Dies wirkt sich nur darauf aus, was passiert, wenn Sie nicht angeben, welche Zweige Sie pushen möchten .

2138
hammar

Mir ist klar, dass dies ein alter Beitrag ist, aber da ich gerade auf dasselbe Problem gestoßen bin und Probleme hatte, die Antwort zu finden, dachte ich, ich würde etwas hinzufügen.

Die Antwort von @ hammar ist also richtig. Die Verwendung von Push.default simple ähnelt in gewisser Weise der Konfiguration der Verfolgung für Ihre Zweige, sodass Sie beim Drücken und Ziehen keine Fernbedienungen und Zweige angeben müssen. Mit der Option matching werden alle Zweige an die entsprechenden Gegenstücke auf der Standardfernbedienung übertragen (dies ist die erste, die eingerichtet wurde, sofern Sie Ihr Repo nicht anders konfiguriert haben).

Eine Sache, die ich hoffe, dass andere in Zukunft nützlich finden, ist, dass ich Git 1.8 unter OS X Mountain Lion ausgeführt habe und diesen Fehler nie gesehen habe. Das Upgrade auf Mavericks hat plötzlich dazu geführt, dass es angezeigt wurde (wenn git --version ausgeführt wird, wird git version 1.8.3.4 (Apple Git-47) angezeigt, was ich bis zum Update des Betriebssystems noch nie gesehen hatte.

19
Bill

Wenn Sie eine Nachricht von Git erhalten, die sich über den Wert simple in der Konfiguration beschwert, überprüfen Sie Ihren git version.

Nach dem Upgrade von XCode (auf Mac mit Mountain Lion), bei dem auch git von 1.7.4.4 auf 1.8.3.4) aktualisiert wurde, Shells, die gestartet wurden, bevor das Upgrade noch lief git 1.7.4.4 und beschwerten sich über den Wert simple für Push.default in der globalen Konfiguration.

Die Lösung bestand darin, die Shells zu schließen, auf denen die alte Version von git ausgeführt wird, und die neue Version zu verwenden!

8
Tom Barron

Ich habe mich gefragt, warum ich diese große Warnmeldung auf Ubuntu 16.04 (das mit Git 2.7.4 geliefert wird) erhalten habe, aber nicht auf Arch Linux. Der Grund ist, dass die Warnung in Git 2.8 (März 2016) entfernt wurde:

Während der Umstellung auf die Git-Version 2.0 wurde der Benutzer beim Ausführen von "git Push" ziemlich laut gewarnt, ohne die Konfigurationsvariable "Push.default" festzulegen. Wir warnen nicht mehr, weil der Übergang vor langer Zeit abgeschlossen wurde.

Daher wird die Warnung nicht angezeigt, wenn Sie Git 2.8 oder höher verwenden und Push.default nicht festlegen müssen, es sei denn, Sie möchten das Standardverhalten 'simple' ändern.

2
Eugene Yarmash