Как сделать "git push" включать теги внутри ветки?

При извлечении одной ветки git fetch включает любые теги, которые указывают на ветку:

Когда refspec сохраняет полученный результат в ветвях удаленного отслеживания, теги, которые указывают на эти ветки, автоматически следуют. Эта выполняется путем первой выборки из удаленного с использованием заданных s, и если в репозитории есть объекты, на которые указывают удаленные теги, которые он еще не имеет, затем извлекает те недостающие теги. Если другой конец есть теги, которые указывают на ветки, которые вас не интересуют, вы не будете получить их.

Есть ли способ сделать git push таким же образом? На странице руководства говорится, как не нажимать теги (по умолчанию), все теги (--tags) или те, которые вы укажете в командной строке. Это не дает возможности нажать все, указывающие на ветку.

Ответ 1

Вы можете попробовать: git1.8.3 + (май 2013):

git push --follow-tags

Новая опция < --follow-tags "сообщает" git push ", чтобы нажимать соответствующие аннотированные теги при нажатии ветвей.

Это не будет толкать все теги, но только те, которые доступны из ветвей (-ов) HEAD (-ов), которые вы нажимаете.

Как упоминалось в "Нажать тег в удаленный репозиторий с помощью Git?", это касается только аннотированных тегов, а не легкие теги.

git tag 1.0 (легкий) не будет нажата с помощью --follow-tags, это будет с git push --tags.


С Git 2.4.1+ (Q2 2015) эта опция может быть установлена ​​по умолчанию.

См. commit a8bc269 Дейв Ольшевский (cxreg):

упростить добавление новых битов конфигурации, а затем добавить конфигурацию push.followTags, которая по умолчанию включает параметр --follow-tags.

Документация будет включать:

push.followTags::

Если установлено значение true, включите опцию '--follow-tags' по умолчанию. Вы можете переопределить эту конфигурацию во время нажатия, указав "--no-follow-tags"

Включите этот параметр глобально, вы можете запустить git config --global push.followTags true. Его также можно указать для каждого репозитория.