Warum muss ich "push --set-upstream origin <branch>" ausführen?

Ich habe einen lokalen Zweig zum Testen von Solaris und Sun Studio erstellt. Ich habe dann den Zweig stromaufwärts geschoben. Nach dem Festschreiben einer Änderung und dem Versuch, die Änderungen zu übertragen:

$ 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

Warum muss ich dafür etwas Besonderes tun?

Gibt es einen vernünftigen Anwendungsfall, in dem jemand @ erstellen würd<branch>, Drück den<branch> zu remote, und fordern Sie dann ein Commit auf<branch> soll nicht für @ se<branch>?

Ich bin dieser Frage und Antwort auf Stack Overflow gefolgt:Push einen neuen lokalen Zweig in ein entferntes Git-Repository und verfolge es auch. Ich vermute, es ist ein weiteres Beispiel für eine unvollständige oder falsch akzeptierte Antwort. Oder es ist eine weitere Instanz von Git, die eine einfache Aufgabe übernimmt und es schwierig macht.

Hier ist der Blick auf eine andere Maschine. Die Verzweigung ist eindeutig vorhanden, daher wurde sie erstellt und verschoben:

$ 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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage