Почему мне нужно «git push --set-upstream origin <branch>»?

Я создал локальный филиал для тестирования Solaris и Sun Studio. Затем я подтолкнул ветку вверх по течению. После внесения изменений и попытки их изменения:

$ 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

Почему я должен сделать что-то особенное для этого?

Есть ли разумный вариант использования, где кто-то может создать<branch>нажми<branch> на удаленный, а затем требовать фиксации на<branch> не должен быть для<branch>?

Я следил за этим вопросом и отвечал на переполнение стека:Вставьте новую локальную ветку в удаленный репозиторий Git и отследите его, Я предполагаю, что это еще один случай неполного или неправильно принятого ответа. Или это еще один пример того, как Git выполняет простую задачу и делает ее трудной.

Вот вид на другую машину. Ветвь явно существует, поэтому она была создана и нажата:

$ 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)

Ваш ответ на вопрос