webentwicklung-frage-antwort-db.com.de

Git Warnung: Push.default wird nicht gesetzt; Ihr impliziter Wert ändert sich

Wenn ich in Git auf Remote schiebe, erhalte ich folgende Warnung:

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

See 'git help config' and search for 'Push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

To **********************************
   6b9a6d2..3ab1eab  master -> master

Was bedeutet diese Warnung und was ist dagegen zu tun?

47
JackSun

Diese Warnung wurde in Git 1.7.11 zusammen mit dem Push-Stil simple eingeführt. Das Problem ist, dass der aktuelle Standardwert matching dazu führen kann, dass unerfahrene Benutzer Push-Pushs ausführen, wenn sich einige Zweige hinter ihrem Remote-Äquivalent befinden, da die Zweige einfach nicht aktuell sind. Das Endergebnis ist, dass sie den Zweig zurückspulen und möglicherweise ihre Arbeit oder die eines anderen verlieren. Der simple-Modus wurde als neues Push.default-Verhalten eingeführt und wird in Git 2.0 zur Standardeinstellung (die hoffentlich irgendwann nächstes Jahr ausfallen wird).

Das neue Verhalten von simple ähnelt sehr der Einstellung von upstream: Es drückt nur den aktuellen Zweig, in dem Sie sich gerade befinden, wenn er über einen entfernten Zweig verfügt, den er verfolgt. Es fügt ein zusätzliches Kriterium hinzu: Der entfernte Zweig muss denselben Namen haben wie der lokale Zweig.

Wie Sie festgestellt haben, besteht die Möglichkeit, die Nachricht zu entfernen, indem Sie Push.default setzen. Um das neue Verhalten zu erhalten, verwenden Sie:

git config --global Push.default simple

Um Gits Standardverhalten ohne Warnmeldung zu erhalten, verwenden Sie:

git config --global Push.default matching

Ich würde wirklich dagegen raten das Matching verwenden. Im Allgemeinen möchten die meisten Menschen wirklich das neue Verhalten simple oder upstream.

71

Update Februar 2016:

git 2.8 (März 2016) Diese große Warnmeldung wurde entfernt.

Siehe commit 2f27520 (25 Feb 2016) von Matthieu Moy (moy) .
(Zusammengeführt von Junio ​​C Hamano - gitster - in commit 15be621 , 26 Feb 2016)

Push: Warnmeldung "Push.default is unset" entfernen

Die Warnung war vor der Umstellung auf 2.0 wichtig und blieb eine Zeit lang wichtig, sodass neue Benutzer Push.default explizit in ihrer Konfiguration erhalten und kein inkonsistentes Verhalten feststellen, wenn sie eine ältere Version von Git verwenden.

Die Warnung gibt es seit Version 1.8.0 (Oktober 2012), daher können wir Sie gehen davon aus, dass die große Mehrheit der aktuellen Git-Benutzer .__ ausgesetzt war. es, und die meisten von ihnen haben Push.default bereits explizit gesetzt. Das Die Umstellung von "Matching" auf "Simple" war für 2.0 (Mai 2014) geplant, aber tatsächlich nur für 2.3 (Feb 2015) passiert.

Heute wird die Warnung meistens von Anfängern gesehen, die ihr .__ nicht gesetzt haben. Push.default Konfiguration (noch). Für viele von ihnen lautet die Warnung verwirrend, weil es von Konzepten spricht, die sie nicht gelernt haben, und bittet sie um eine Wahl, die sie noch nicht treffen können. Siehe zum Beispiel " Warnung: Push.default ist nicht gesetzt; der implizite Wert ändert sich in Git 2.0 " (1260 Stimmen für die Frage, 1824 für die Antwort zum Zeitpunkt des Schreibens)

Entfernen Sie die Warnung vollständig, um Anfänger nicht zu stören. Leute die Verwenden Sie gelegentlich eine ältere Version von Git, wird dies der .__ ausgesetzt. Warnung durch diese alte Version.

Versionen von Git ohne Warnung werden schließlich ausreichend implementiert und Tutorials müssen nicht mehr die Einstellung Push.default angeben.


Ursprüngliche Antwort (März 2014)

Diese Warnung wird sich in git 2.0 (Q2 2014) bald ändern, mit Commit 289ca27 und Commit 11037ee :

Push.default ist nicht gesetzt; sein impliziter Wert hat sich geändert in Git 2.0 von "Matching" bis "Simple".
Um diese Nachricht zu unterdrücken und das Verhalten von traditionell beizubehalten, verwenden Sie:

git config --global Push.default matching

Um diese Nachricht zu unterdrücken und das neue Verhalten jetzt zu übernehmen, verwenden Sie:

git config --global Push.default simple

Wenn Push.default auf 'matching' gesetzt ist, wird git lokale Verzweigungen pushen zu den bereits vorhandenen Zweigstellen mit demselben Namen.

Seit Git 2.0 verwendet Git standardmäßig das eher konservative 'simple' '- Verhalten, das den aktuellen Zweig nur an den entsprechenden entfernten Zweig schiebt, den' git pull 'zum Aktualisieren des aktuellen Zweigs verwendet.

Mehr dazu unter " Warum wird der Standardwert in Git gewählt? ".

7
VonC

Ich bin vor einer Weile auf das gleiche Problem gestoßen. Ich habe das gelöst,

  • erstes Klonen meines neuen Zweiges (UAT)
  • dann auf diesen Zweig (UAT) drücken
0