Судя по появившейся ошибке, в вашем локальном репозитории нет ветви с именем branch
, но в удаленном репозитории она уже должна быть, например, если соавтор уже выдвинул branch
.
Конкретный аргумент для git push
, о котором идет речь, известен как refspec , и с помощью разделителя двоеточий вы можете фактически переименовывать ветви или объекты на удаленной стороне.Следовательно, refspec, равный HEAD:branch
, означает толчок ветви, начиная с самого последнего коммита в текущей ветке, если символическая ссылка HEAD
относится к ветке (или коммит, к которому относится HEAD
, если отсоединено ), но с ref branch
на удаленной стороне.
Для полноты, если branch
еще не существует на пульте, вы должны вызвать
git push remote HEAD:refs/heads/branch
<refspec>
…
Укажите, какую ссылку назначения обновлять с какого исходного объекта.Формат параметра <refspec>
является необязательным плюсом +
, за которым следует исходный объект <src>
, за которым следует двоеточие :
, за которым следует пункт назначения <dst>
.
.часто это название ветви, которую вы хотите нажать, но это может быть любое произвольное «выражение SHA-1», например master~4
или HEAD
(см. gitrevisions ).
Указывает, какой ref на удаленной стороне обновляется этим нажатием.Произвольные выражения не могут быть использованы здесь, фактический ref должен быть назван.Если git push [<repository>]
без какого-либо аргумента <refspec>
настроен на обновление некоторого ref в пункте назначения с <src>
с remote.<repository>.push
переменной конфигурации, часть :<dst>
может быть опущена - такой толчок обновит ref, что <src>
обычно обновляется без <refspec>
в командной строке.В противном случае отсутствие :<dst>
означает обновление той же ссылки, что и <src>
.
.