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


Ich benutze Git seit einiger Zeit und habe kürzlich ein Update heruntergeladen, nur um diese Warnmeldung zu finden, wenn ich es 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 setzen, aber was bedeuten sie? Was ist der Unterschied zwischen simple und matching?

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


1574
2017-10-30 21:48


Ursprung


Antworten:


Es wird sehr ausführlich erklärt in die Dokumente, aber ich werde versuchen, zusammenzufassen:

  • matching meint git push werden Drücken Sie alle Ihre lokalen Niederlassungen zu denen mit dem gleichen Namen auf der Fernbedienung. Dies macht es leicht, versehentlich einen Zweig zu drücken, den Sie nicht vorhaben.

  • simple meint git push werden schieb nur den aktuellen Zweig auf den einen git pull würde ausziehenund überprüft auch, ob ihre Namen übereinstimmen. Dies ist ein intuitiveres Verhalten, weshalb die Standardeinstellung 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 in der Befehlszeile verschoben werden sollen. Andere Clients können unterschiedliche Einstellungen haben, Es beeinflusst nur, was passiert, wenn Sie nicht angeben, welche Zweige Sie verschieben möchten.


2119
2017-10-30 22:11



Mir ist klar, dass es sich um einen alten Post handelt, aber da ich gerade in dasselbe Problem geriet und Schwierigkeiten hatte, die Antwort zu finden, dachte ich, ich würde etwas hinzufügen.

Also, @ Hammars Antwort ist richtig. Verwenden push.default simple ist in gewisser Weise so, als würde man die Verfolgung von Zweigstellen konfigurieren, so dass beim Drücken und Ziehen keine Fernbedienungen und Zweige angegeben werden müssen. Das matching Die Option verschiebt alle Zweige zu den entsprechenden Gegenstücken auf der Standard-Fernbedienung (die zuerst eingerichtet wurde, es sei denn, Sie haben Ihr Repo anders konfiguriert).

Eine Sache, von der ich hoffe, dass sie in Zukunft nützlich ist, ist, dass ich Git 1.8 auf OS X Mountain Lion laufen ließ und diesen Fehler nie gesehen habe. Das Upgrade auf Mavericks ist das, was es plötzlich auftauchen ließ git --version wird zeigen git version 1.8.3.4 (Apple Git-47) was ich bis zum Update auf das Betriebssystem nie gesehen hatte.


19
2017-10-26 17:00



Wenn Sie eine Nachricht von Git bekommen, beschweren sich über den Wert simple in der Konfiguration, überprüfen Sie Ihre git version.

Nach dem Upgrade XCode (auf einen Mac Laufen Mountain Lion), die ebenfalls aktualisiert wurden git von 1.7.4.4 zu 1.8.3.4Shells, die vor dem Upgrade gestartet wurden, liefen immer noch git 1.7.4.4 und beschwerte 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 und benutze die neue Version!


7
2018-01-31 15:35



Ich habe mich gefragt, warum ich diese große Warnmeldung auf Ubuntu 16.04 (die mit Git 2.7.4 kommt) bekomme, aber nicht auf Arch Linux. Der Grund dafür ist, dass die Warnung entfernt wurde Git 2.8 (März 2016):

Über den Übergang bei etwa Git Version 2.0, der Benutzer zu   bekomme eine ziemlich laute Warnung, wenn "git push" ohne Einstellung ausgeführt wird   push.default Konfigurationsvariable. Wir warnen nicht mehr, weil die   Der Übergang wurde vor langer Zeit abgeschlossen.

Sie werden also die Warnung nicht sehen, wenn Sie Git 2.8 und höher haben und nicht einstellen müssen push.default es sei denn, Sie möchten den Standard ändern 'simple' Verhalten.


1
2018-03-19 13:10