Sur le plan fonctionnel, dans un flux de travail décentralisé, je ne vois pas la différence entre les options simple
et current
pour Push.default
paramètre de configuration.
current
va pousser la branche actuelle vers une branche du même nom sur la télécommande spécifiée. simple
fera la même chose pour les télécommandes suivies et toutes les télécommandes non suivies pour la branche actuelle (les noms de branche identiques seront appliqués dans les deux cas).
Quelqu'un peut-il expliquer des différences importantes entre les deux pour les flux de travail décentralisés qui me manquent?
La différence est qu'avec simple
, git Push
_ (sans passer un refspec) échouera si la branche en cours ne suit pas une branche en amont distante (même si une branche du même nom existe sur la base distante):
$ 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 branche actuelle suit ou non un amont, elle veut simplement transmettre à une branche du 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
Depuis le documentation de configuration Git :
upstream
- Poussez la branche actuelle vers sa branche amont ...
simple
- comme en amont, mais refuse de pousser si le nom de la branche en amont est différent de celui de la branche locale ...
current
- Déplace la branche actuelle vers une branche du même nom.
La différence est que simple
passe à sa branche de suivi si elle porte le même nom, alors que current
poussera vers une branche du même nom, quelle que soit la branche 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`