Ich benutze Git jetzt schon eine Weile 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 einstellen, aber was bedeuten sie? Was ist der Unterschied zwischen simple
und matching
?
Wenn ich es auf einem Client ändere, muss ich dann etwas auf anderen Clients tun, mit denen ich Repos teile?
git
version-control
git-push
Marko
quelle
quelle
Antworten:
Es wird in den Dokumenten ausführlich erklärt , aber ich werde versuchen, es zusammenzufassen:
matching
bedeutetgit push
, dass alle Ihre lokalen Niederlassungen zu den gleichnamigen auf der Fernbedienung weitergeleitet werden. Dies macht es einfach, versehentlich einen Zweig zu verschieben, den Sie nicht beabsichtigt haben.simple
bedeutetgit push
, dass nur der aktuelle Zweig zu dem Zweiggit pull
verschoben wird, von dem gezogen wird , und dass auch überprüft wird, 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 überschrieben werden, indem explizit angegeben wird, welche Zweige Sie in der Befehlszeile verschieben möchten. Andere Clients können andere Einstellungen haben. Dies wirkt sich nur darauf aus, was passiert, wenn Sie nicht angeben, welche Zweige Sie verschieben möchten .
quelle
git push
, dass nur die aktuelle Filiale gepusht wird.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 ein bisschen hinzufügen.
Die Antwort von @ hammar ist also richtig. Die Verwendung entspricht
push.default simple
in gewisser Weise der Konfiguration des Trackings für Ihre Zweige, sodass Sie beim Drücken und Ziehen keine Fernbedienungen und Zweige angeben müssen. Mit diesermatching
Option werden alle Zweige an die entsprechenden Gegenstücke auf der Standardfernbedienung weitergeleitet (dies ist die erste, die eingerichtet wurde, sofern Sie Ihr Repo nicht anders konfiguriert haben).Ich hoffe, andere finden es in Zukunft nützlich, dass ich Git 1.8 unter OS X Mountain Lion ausgeführt habe und diesen Fehler nie gesehen habe. Ein Upgrade auf Mavericks hat es plötzlich angezeigt (das Ausführen
git --version
zeigt,git version 1.8.3.4 (Apple Git-47)
was ich bis zum Update des Betriebssystems noch nie gesehen habe.quelle
Wenn Sie eine Nachricht von git erhalten, die sich über den Wert
simple
in der Konfiguration beschwert , überprüfen Sie Ihregit version
.Nach dem Upgrade
XCode
(bei einemMac
laufendenMountain Lion
), das ebenfallsgit
von 1.7.4.4 auf 1.8.3.4 aktualisiert wurde , wurden Shells gestartet, bevor das Upgrade noch Git 1.7.4.4 ausführte, und beschwerten sich über den Wertsimple
für push.default in der globalen Konfiguration.Die Lösung bestand darin, die Shells zu schließen, auf denen die alte Version von ausgeführt wurde,
git
und die neue Version zu verwenden!quelle
git config --global push.default simple
Ich habe mich gefragt, warum ich diese große Warnmeldung unter Ubuntu 16.04 (das mit Git 2.7.4 geliefert wird) erhalten habe, aber nicht unter Arch Linux. Der Grund ist, dass die Warnung in Git 2.8 (März 2016) entfernt wurde:
Sie werden die Warnung also nicht sehen, wenn Sie Git 2.8 und höher haben und nicht einstellen müssen, es
push.default
sei denn, Sie möchten das Standardverhalten ändern'simple'
.quelle