Обновление май 2015
Начиная с git 2.4.1 , вы можете сделать
git config --global push.followTags true
Если установлено значение true, включите опцию --follow-tags по умолчанию.
Вы можете переопределить эту конфигурацию во время отправки, указав --no-follow-tags.
Как отметил в этой теме Мэтт Роджерс, отвечая Уэсу Херду :
--follow-tags только подталкивает аннотированные теги .
git tag -a -m "I'm an annotation" <tagname>
Это будет толкаться (в отличие от git tag <tagname>легкого тега, который не будет толкаться, как я уже упоминал здесь )
Обновление апрель 2013
Начиная с git 1.8.3 (22 апреля 2013 г.) , вам больше не нужно делать 2 команды для добавления веток и затем для добавления тегов :
Новая --follow-tagsопция " " сообщает " git push" выдвигать соответствующие аннотированные теги при выталкивании ветвей .
Теперь вы можете попробовать при нажатии новых коммитов:
git push --follow-tags
Это не будет выдвигать все локальные теги, только тот, на который ссылаются коммиты, которые передаются с помощью git push.
Git 2.4.1+ (второй квартал 2015 года) представит опцию push.followTags: см. « Как сделать так, чтобы git pushтеги включались в ветку? ».
Оригинальный ответ, сентябрь 2010
Ядерный вариант был бы git push --mirror, что подтолкнет все ссылки под refs/.
Вы также можете вставить только один тег с вашей текущей веткой коммита:
git push origin : v1.0.0
Вы можете объединить --tagsопцию с refspec, например:
git push origin --tags :
(так как --tagsозначает: все ссылки под вставляютсяrefs/tags , в дополнение к ссылочным спецификациям, явно указанным в командной строке )
У вас также есть эта запись " Нажатие веток и тегов одним вызовом " git push "
Zoltán Füzesi только что опубликовал полезную подсказку в списке рассылки Git :
Я использую, .git/configчтобы решить это:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
После добавления этих строк git push originбудут загружены все ваши ветки и теги. Если вы хотите загрузить только некоторые из них, вы можете перечислить их.
Сам еще не пробовал, но похоже, что это может быть полезно, пока в git push не будет добавлен какой-то другой способ одновременного добавления веток и тегов.
С другой стороны, я не против печатать:
$ git push && git push --tags
Осторожно , так как заметил по Aseem Кишор
push = +refs/heads/*будет принудительно выталкивает все ваши филиалы .
Это укусило меня только сейчас, так что к вашему сведению.
Рене Шейбе добавляет этот интересный комментарий :
--follow-tagsПараметр вводит в заблуждение , так как только теги под .git/refs/tagsсчитаются.
Если git gcвыполняется, теги перемещаются из .git/refs/tagsв .git/packed-refs. После этого git push --follow-tags ...больше не работает, как ожидалось.
git push && git push --tags?