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
Duplicata possible de Pourquoi dois-je faire `--set-upstream` tout le temps ?
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.