Por que tenho que “git push --set-upstream origin <branch>”?

Criei uma filial local para testar o Solaris e o Sun Studio. Eu então empurrei o ramo a montante. Após confirmar uma alteração e tentar enviá-la:

$ 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

Por que tenho que fazer algo especial para isso?

Existe algum caso de uso razoável em que alguém criaria<branch>, empurre o<branch>&nbsp;para remoto e, em seguida, reivindique uma confirmação em<branch>&nbsp;não deveria ser para<branch>?

Eu segui esta pergunta e resposta no Stack Overflow:Envie uma nova ramificação local para um repositório Git remoto e rastreie-a também. Suponho que seja outra instância de uma resposta aceita incompleta ou errada. Ou, é outra instância do Git pegando uma tarefa simples e dificultando.

Aqui está a visão em uma máquina diferente. A ramificação existe claramente, portanto foi criada e enviada por push:

$ 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