J'utilise Git depuis un certain temps maintenant et j'ai récemment téléchargé une mise à jour uniquement pour trouver ce message d'avertissement lorsque j'essaie 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 le définir sur l'une des valeurs mentionnées, mais que signifient-elles? Quelle est la différence entre simple
et matching
?
Si je le modifie sur un client, dois-je faire quelque chose sur les autres clients avec lesquels je partage des référentiels?
git
version-control
git-push
Marko
la source
la source
Réponses:
C'est expliqué en détail dans la documentation , mais je vais essayer de résumer:
matching
signifie que toutes vos succursales localesgit push
seront poussées vers celles portant le même nom sur la télécommande. Il est ainsi facile de pousser accidentellement une branche que vous ne vouliez pas.simple
des moyensgit push
vont pousser que la branche actuelle à celle quigit pull
serait tirer de , et vérifie également que leurs noms correspondent. Il s'agit d'un comportement plus intuitif, c'est pourquoi la valeur par défaut est modifiée.Ce paramètre affecte uniquement le comportement de votre client local et peut être remplacé en spécifiant explicitement les branches que vous souhaitez pousser sur la ligne de commande. D'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 .
la source
git push
ne pousser que la branche actuelle.Je me rends compte que c'est un vieux post, mais comme je viens de rencontrer le même problème et que j'ai eu du mal à trouver la réponse, j'ai pensé ajouter un peu.
La réponse de @ hammar est donc correcte. L'utilisation
push.default simple
est, d'une certaine manière, comme la configuration du suivi sur vos branches afin que vous n'ayez pas besoin de spécifier des télécommandes et des branches lorsque vous poussez et tirez. L'matching
option poussera toutes les branches vers leurs homologues correspondantes sur la télécommande par défaut (qui est la première qui a été configurée sauf si vous avez configuré votre référentiel autrement).Une chose que j'espère que d'autres trouveront utile à l'avenir est que j'utilisais 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 soudainement fait apparaître (l'exécution
git --version
montreragit version 1.8.3.4 (Apple Git-47)
ce que je n'avais jamais vu jusqu'à la mise à jour du système d'exploitation.la source
Si vous recevez un message de git se plaignant de la valeur
simple
de la configuration, vérifiez votregit version
.Après la mise à niveau
XCode
(enMac
cours d'exécutionMountain Lion
), qui est également passéegit
de 1.7.4.4 à 1.8.3.4 , les shells ont démarré avant que la mise à niveau ne soit toujours en cours d'exécution avec git 1.7.4.4 et se sont plaints de la valeursimple
de push.default dans la configuration globale.La solution était de fermer les shells exécutant l'ancienne version de
git
et d'utiliser la nouvelle version!la source
git config --global push.default simple
Je me demandais pourquoi je recevais ce gros message d'avertissement sur Ubuntu 16.04 (qui vient avec Git 2.7.4), mais pas sur Arch Linux. La raison en est que l'avertissement a été supprimé dans Git 2.8 (mars 2016):
Ainsi, vous ne verrez pas l'avertissement si vous avez Git 2.8 et versions ultérieures et que vous n'avez pas besoin de le définir,
push.default
sauf si vous souhaitez modifier le'simple'
comportement par défaut .la source