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