Ответ 1
Первый git push всегда требует указать ветку, которую вы хотите нажать.
git push -u origin master
Затем можно нажать следующий шаг из той же ветки, что и вы:
git push
От git push
справочная страница:
Специальный refspec
:
(или+:
, чтобы разрешить немедленные обновления) направляет git на нажатие "соответствующих" ветвей: для каждой ветки, которая существует на локальной стороне, удаленная сторона обновляется, если ветвь с тем же именем уже существует на удаленной стороне.
Это режим работы по умолчанию, если не найдено явного refspec.
Так как вы клонировали пустой репозиторий, первый push не находит никакой соответствующей ветки (в репозитории upstream origin
) нет()
Примечание. См. "Что является результатом git push origin
?":
Политика по умолчанию для git push изменится с помощью git 2.0 (или, возможно, git1.9)
Был введен новый режим push, "
simple
", который представляет собой крест между "current
" и "upstream
".
"git push
" без какого-либо refspec будет нажимать текущую ветку на одно имя в удаленном репозитории только тогда, когда она настроена на отслеживание ветки с тем же именем там.
Планируется сделать этот режим новым значением по умолчанию, еслиpush.default
не настроен.
Итак, в git push -u origin master
здесь важна -u
(--set-upstream-to
) (а не просто для того, чтобы направить ветвь с тем же именем на удаленный 'origin
', но это ветвь удаленного отслеживания.