web-dev-qa-db-fra.com

Avertissement: Push.default est non défini; sa valeur implicite est en train de changer dans Git 2.0

J'utilise Git depuis un moment maintenant et j'ai récemment téléchargé une mise à jour uniquement pour constater que ce message d'avertissement s'affiche lorsque j'essaie de 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

Je peux évidemment définir l'une des valeurs mentionnées, mais que signifient-elles? Quelle est la différence entre simple et matching?

Si je le change sur un client, devrai-je faire quelque chose sur d'autres clients avec lesquels je partage des pensions?

1607
Marko

C'est expliqué en détail dans les docs , mais je vais essayer de résumer:

  • matching signifie git Push sera Poussez toutes vos branches locales sur celles du même nom sur la télécommande. Cela facilite la poussée accidentelle d'une branche que vous n'aviez pas l'intention de faire.

  • simple signifie que git Push va pousser uniquement la branche courante sur celle que git pull extraira de , et vérifie que leurs noms correspondent. C'est un comportement plus intuitif, c'est pourquoi le comportement par défaut est remplacé par celui-ci.

Ce paramètre affecte uniquement le comportement de votre client local et peut être remplacé en spécifiant explicitement les branches que vous souhaitez transférer sur la ligne de commande. Les autres clients peuvent avoir des paramètres différents . Cela n’affecte que ce qui se passe lorsque vous ne spécifiez pas les branches que vous souhaitez pousser .

2138
hammar

Je me rends compte que c’est un vieux message, mais comme je venais de rencontrer le même problème et que j’avais du mal à trouver la réponse, j’ai pensé ajouter quelque chose.

La réponse de @ hammar est donc correcte. Utiliser Push.default simple revient en quelque sorte à configurer le suivi sur vos branches de sorte que vous n’ayez pas besoin de spécifier des télécommandes et des branches pour pousser et tirer. L'option matching poussera toutes les branches vers leurs homologues correspondants sur la télécommande par défaut (la première à avoir été configurée, à moins que vous n'ayez configuré votre référentiel autrement).

J'espère que les autres trouveront utile dans l’avenir, c’est que j’exécutais Git 1.8 sur OS X Mountain Lion et que je n’ai jamais vu cette erreur. La mise à niveau vers Mavericks est ce qui l’a fait apparaître soudainement (si vous exécutez git --version, git version 1.8.3.4 (Apple Git-47) apparaît que vous n’aviez jamais vu jusqu’à la mise à jour du système d’exploitation.

19
Bill

Si vous recevez un message de git se plaindre de la valeur simple de la configuration, vérifiez votre git version.

Après la mise à niveau XCode (sur un Mac exécutant Mountain Lion), qui a également mis à niveau git de 1.7.4.4 à 1.8.3.4, les shells démarrés avant la mise à niveau fonctionnaient toujours avec git 1.7.4.4 et se plaignaient de la valeur simple pour Push.default dans la configuration globale.

La solution consistait à fermer les shells exécutant l'ancienne version de git et à utiliser la nouvelle version!

8
Tom Barron

Je me demandais pourquoi je recevais ce gros message d'avertissement sous Ubuntu 16.04 (fourni avec Git 2.7.4), mais pas sous Arch Linux. La raison en est que l'avertissement a été supprimé dans Git 2.8 (mars 2016):

Au cours de la transition autour de la version 2.0 de Git, l’utilisateur obtenait un avertissement assez puissant lorsqu’il exécutait "git Push" sans définir de variable de configuration Push.default. Nous ne prévenons plus car la transition s'est achevée il y a longtemps.

Ainsi, vous ne verrez pas l'avertissement si vous utilisez Git 2.8 ou version ultérieure et que vous n'avez pas besoin de définir Push.default à moins que vous ne souhaitiez modifier le comportement par défaut de 'simple'.

2
Eugene Yarmash