223 votes

Pourquoi dois-je faire "git push --set-upstream origin <branch>" ?

J'ai créé une branche locale pour tester Solaris et Sun Studio. J'ai ensuite poussé la branche en amont. Après avoir validé un changement et essayé de pousser les changements :

$ git commit blake2.cpp -m "Add workaround for missing _mm_set_epi64x"
[solaris 7ad22ff] Add workaround for missing _mm_set_epi64x
 1 file changed, 5 insertions(+)
$ git push
fatal: The current branch solaris has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin solaris

Pourquoi dois-je faire quelque chose de spécial pour ça ?

Y a-t-il un cas d'utilisation raisonnable où quelqu'un créerait <branch> pousse le <branch> à distance, et ensuite demander un commit sur <branch> n'est pas censé être pour <branch> ?


J'ai suivi cette question et cette réponse sur Stack Overflow : Pousser une nouvelle branche locale vers un dépôt Git distant et le suivre également . Je suppose que c'est un autre exemple de réponse incomplète ou fausse. Ou, c'est un autre exemple de Git prenant une tâche simple et la rendant difficile.


Voici la vue sur une autre machine. La branche existe clairement, elle a donc été créée et poussée :

$ git branch -a
  alignas
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/alignas
  remotes/origin/arm-neon
  remotes/origin/det-sig
  remotes/origin/master
  remotes/origin/solaris

2 votes

3 votes

Merci @Alexi. Malheureusement, le dup cité n'explique pas le cas d'utilisation ridicule qui est représenté par défaut. (Ce ne sont pas des questions rhétoriques. Je suis sincèrement intéressé par la raison de ce design UX).

2 votes

Notez que ceci est configurable. Si vous faites git config --add push.default current alors git push créera automatiquement la branche dans le repo distant si nécessaire.

0voto

Vivek javiya Points 31

Si vous avez oublié d'ajouter le lien HTTPS du référentiel, mettez-le avec git push <repo HTTPS>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X