У віддаленій конфігурації git за замовчуванням ви повинні чітко натискати теги (хоча вони автоматично вибираються разом із зобов’язаннями, на які вони вказують). Вам потрібно користуватися
$ git push <remote> tag <tagname>
щоб натиснути один тег, або
$ git push <remote> --tags
щоб натиснути всі теги (або git push --tags
, як правило, для віддаленого за замовчуванням, зазвичай origin
).
Це дуже задумана поведінка, щоб зробити чіткі теги явними. Натискання тегів має бути, як правило, усвідомленим вибором.
Узагальнення того, що написав Хуніо К. Хамано (посилання в коментарях від @Andre Miras)
Під час отримання даних ви взаємодієте з віддаленим сховищем, яке хтось опублікував, що означає:
- набір тегів, які існують, - всі видавці, яких хотіли бачити люди, і
- не тільки ви, але й інші люди також побачать ті самі теги.
Іншими словами, теги в сховищах, з яких ви отримуєте, призначені для загального доступу та загального користування. Це полегшить спілкування між розробниками, якщо всім легко отримати ті самі теги.
Ось чому git fetch
автоматично "слід" теги, тобто завантажує теги під час завантаження змін, на які вони вказують - іншими словами завантажує всі відповідні опубліковані теги.
Під час натискання ви натискаєте з вашого робочого сховища, яке більшість часу не є загальнодоступним, а теги в цьому сховищі не розроблені для загального доступу. Ви можете використовувати власні локальні теги для позначення свого прогресу, тому не має сенсу сліпо натискати всі теги у вашому сховищі до сховища, яке ви натискаєте, щоб публікувати свої зміни, теги яких за визначенням є загальнодоступними.
Ось чому вам потрібно чітко натиснути тег, щоб позначити тег як загальнодоступний.
Крім того, ви можете налаштувати пульт дистанційного керування, щоб завжди натискати всі теги, наприклад, поставити щось подібне у свій .git/config
:
[віддалене "опублікування"] # або все, що воно названо
URL = ...
push = + refs / heads / *: refs / heads / *
push = + refs / теги / *: refs / теги / *
Це означає примусово натискати всі голови (усі гілки) та всі теги (якщо ви не хочете примусового натискання голів, видаліть префікс '+' з refspec).
git push --follow-tags
тепер може бути корисним, дивіться мою відповідь нижче