Fonctionnellement parlant, dans un workflow décentralisé, je ne vois pas la différence entre current
options simple
et current
options current
pour le push.default
de push.default
.
current
poussera la twig en cours vers une twig portant le même nom sur la télécommande spécifiée. simple
fera effectivement la même chose pour les télécommandes suivies et les télécommandes non suivies pour la twig en cours (elle applique des noms de twig identiques dans les deux cas).
Quelqu’un peut-il expliquer les différences importantes entre les deux pour les stream de travail décentralisés qui me manquent?
La différence est que, avec simple
, git push
(sans passer de refspec) échouera si la twig en cours ne suit pas une twig en amont distante (même si une twig portant le même nom existe sur la télécommande):
$ git checkout -b foo Switched to a new branch 'foo' $ git config push.default simple $ git push fatal: The current branch foo has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin foo
D’un autre côté, current
ne se soucie pas de savoir si la twig actuelle suit ou non un stream amont, elle veut juste pousser vers n’importe quelle twig qui porte le même nom:
$ git config push.default current $ git push Total 0 (delta 0), reused 0 (delta 0) To /Documents/GitHub/bare * [new branch] foo-> foo
De la documentation de configuration de Git :
upstream
– pousse la twig actuelle vers sa twig amont …
simple
– comme en amont, mais refuse de pousser si le nom de la twig en amont est différent du nom local …
current
– pousse la twig actuelle vers une twig du même nom.
La différence est que le simple
pousser vers sa twig de suivi si elle porte le même nom, alors que current
poussera vers une twig du même nom, quelle que soit la twig de suivi:
$ git branch -vvv master 58d9fdc [origin/master: ahead 1] t1 bobo * new 37132d3 [origin/save: ahead 1] t1 bibi # <- tracking branch 'save' $ git -c push.default=current push # <- set `push.default=current` Counting objects: 3, done. Writing objects: 100% (3/3), 234 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /home/jthill/sandbox/20/t1 * [new branch] new -> new # <- and push creates `new`