В стандартной конфигурации git remote вы должны явно указывать теги (в то время как они выбираются автоматически вместе с коммитами, на которые они указывают). Вам нужно использовать
$ git push <remote> tag <tagname>
нажать одну метку, или
$ git push <remote> --tags
нажать на все теги (или git push --tags
, как правило, нажать на удаленный по умолчанию origin
).
Это очень предназначенное поведение, чтобы сделать push-теги явными. Нажатие тегов должно быть обычно осознанным выбором.
Подводя итог тому, что написал Хунио С. Хамано (в комментариях @Andre Miras)
При получении вы взаимодействуете с удаленным репозиторием, который кто-то опубликовал, что означает:
- набор существующих тегов - это все, что издатель хотел, чтобы люди видели, и
- не только вы, но и другие люди будут видеть те же теги.
Другими словами, теги в репозиториях, из которых вы выбираете, предназначены для публичного использования и общего доступа. Это облегчит общение между разработчиками, если всем будет легко получить те же теги.
Вот почему git fetch
автоматически «следит» за тегами, то есть он загружает теги при загрузке ревизий, на которые они указывают - другими словами, загружает все соответствующие опубликованные теги.
При нажатии вы выталкиваете из своего рабочего репозитория, который в большинстве случаев не является общедоступным, а теги в этом репозитории не предназначены для публичного использования. Вы можете использовать свои собственные локальные теги, чтобы отметить ваш прогресс, поэтому нет смысла вслепую помещать все теги в вашем репозитории в репозиторий, который вы отправляете, для публикации ваших изменений, чьи теги по определению являются общедоступными.
Вот почему вам нужно явно указать тег, чтобы пометить тег как открытый.
В качестве альтернативы вы можете настроить пульт, на который вы нажимаете, чтобы всегда выдвигать все теги, например, поместить что-то подобное в ваш .git/config
:
[remote "publish"] # или как его там
URL = ...
нажать = + ссылки / головы / *: ссылки / головы / *
push = + refs / tags / *: refs / tags / *
Это означает принудительное нажатие всех головок (всех ветвей) и всех тегов (если вы не хотите принудительного толкания головок, удалите префикс «+» из refspec).
git push --follow-tags
Теперь может быть полезным, см. мой ответ ниже