Создать тег в репозитории GitHub


910

У меня есть хранилище в GitHub, и мне нужно пометить его.
Я отмечен в оболочке, но на GitHub он не отображается.

Должен ли я сделать что-нибудь еще?

Команда, которую я использовал в оболочке:

git tag 2.0

И теперь, когда я печатаю, git tagэто показывает:

2.0

Так что, похоже, теги присутствуют, верно?

Репозиторий: https://github.com/keevitaja/myseo-pyrocms .

Как сделать так, чтобы этот тег отображался на GitHub? Где мои теги?

Ответы:


1498

Вы можете создавать теги для GitHub, используя:

  • командная строка Git, или
  • Веб-интерфейс GitHub.

Создание тегов из командной строки

Чтобы создать тег в текущей ветке, запустите:

git tag <tagname>

Если вы хотите включить описание в свой тег, добавьте, -aчтобы создать аннотированный тег :

git tag <tagname> -a

Это создаст localтег с текущим состоянием ветви, в которой вы находитесь. При нажатии на ваше удаленное репо теги по умолчанию НЕ включены. Вам нужно будет явно указать, что вы хотите отправить свои теги в удаленное хранилище:

git push origin --tags

Из официальной документации Linux Kernel Git дляgit push :

--tags

Все ссылки в refs / tags добавляются в дополнение к refspecs, явно указанным в командной строке.

Или, если вы просто хотите нажать один тег:

git push origin <tag>

Читайте также мой ответ на Как вы добавляете тег в удаленный репозиторий с помощью Git? для более подробной информации об этом синтаксисе выше.

Создание тегов через веб-интерфейс GitHub

Вы можете найти инструкции GitHub для этого на их странице справки Создание релизов . Вот резюме:

  1. Нажмите на ссылку релизы на нашей странице хранилища,

    Снимок экрана 1

  2. Нажмите Создать новую версию или Создать новую версию ,

    Снимок экрана 2

  3. Заполните поля формы, затем нажмите Опубликовать релиз внизу,

    Скриншот 3 Снимок экрана 4

  4. После того, как вы создадите свой тег на GitHub, вы можете захотеть извлечь его и в свой локальный репозиторий:

    git fetch
    

Теперь в следующий раз вы можете создать еще один тег в том же выпуске с веб-сайта. Для этого выполните следующие действия:

Перейти на вкладку релиз

  1. Нажмите на кнопку редактирования для выпуска

  2. Укажите имя нового тега ABC_DEF_V_5_3_T_2 и нажмите вкладку

  3. После нажатия вкладки пользовательский интерфейс покажет это сообщение: Отлично! Этот тег будет создан из цели при публикации этого выпуска. Также пользовательский интерфейс предоставит возможность выбрать ветку / коммит

  4. Выберите ветку или коммит

  5. Установите флажок «Это предварительная версия» для тега qa и снимите его, если тег создан для тега Prod.

  6. После этого нажмите «Обновить релиз»

  7. Это создаст новый тег в существующей версии.


8
@RandomDSdevel в github, релиз - это просто тег. Вы можете создать тег из командной строки и отправить его в Github Remote. тег появится в виде релиза на веб-странице githubs.
Юрий Григорьевич

6
@IuriG .: Да, но разве вы не можете создавать теги, которые GitHub автоматически не воспринимает как релизы? (Назад, когда я первоначально создал комментарий, на который вы ответили, и на чей ответ ваш, этот ответ является ответом, теги, по крайней мере, использовались для автоматического превращения в релизы, хотя я не знаю, так ли это до сих пор или нет & thinsp;
следуя рабочему

Кстати, для пути к веб-интерфейсу Github я не вижу кнопку «Создать» или «Черновик» нового выпуска после нажатия ссылки на выпуски в шаге 1.
Snowcrash

2
через интерфейс Github вы можете создавать только легковесные теги.
Анатолий Степанюк

2
К сожалению, интерфейс github не позволяет вам пометить коммит, если он не был за последние 24 часа или за последние 10 (или около того?) Коммитов.
Цаларот

86

Создание тегов

Git использует два основных типа тегов: легкий и аннотированный .

Аннотированные теги :

Чтобы создать аннотированный тег в Git, вы можете просто запустить следующие простые команды на своем терминале.

$ git tag -a v2.1.0 -m "xyz feature is released in this tag."
$ git tag
v1.0.0
v2.0.0
v2.1.0

-M обозначает сообщение для этого конкретного тега. Мы можем написать резюме функций, которые будут отмечать здесь.

Легкие метки :

Другой способ пометить коммит - это легкий тег. Мы можем сделать это следующим образом:

$ git tag v2.1.0
$ git tag
v1.0.0
v2.0.0
v2.1.0

Push Tag

Чтобы вставить определенный тег, вы можете использовать следующую команду:

git push origin v1.0.3

Или, если вы хотите выдвинуть все теги, используйте команду ниже:

git push --tags

Список всех тегов :

Чтобы перечислить все теги, используйте следующую команду.

git tag

Вы добавляете тег ДО или после git commit?
garfbradaz

Я добавил тег после git commit.
Лавакуш Курми

65

Вам просто нужно нажать на тег после запуска git tag 2.0команды.

Так что просто делай git push --tagsсейчас.


40
Я бы предпочел git push v2.0вместо этого использовать --tagsдругие теги, которые не следует нажимать.
tschoppi

1
Это проблема, только если ваши локальные теги отличаются от ваших удаленных тегов. Их легко синхронизировать, если это когда-нибудь станет проблемой.
kjdion84

1
@ kjdion84 Нет, это также проблема, если есть устаревшие теги: все теги всегда выбираются, и когда кто-то их использует --tags, от них трудно избавиться.
Maaartinus

2
илиgit push origin v2.0
праягупд

Я сделал ошибку с использованием тегов!
User3

9

ВНИМАНИЕ: В команде в ответе Лавакуша Курми ( git tag -a v1.0) используется -aфлаг. Этот флаг говорит Git создать аннотированный флаг. Если вы не предоставите флаг ( i.e. git tag v1.0), то он создаст так называемый облегченный тег.


Рекомендуется использовать аннотированные теги, потому что они содержат много дополнительной информации, такой как:

  • человек, который сделал метку
  • дата создания тега
  • сообщение для тега

Из-за этого вы всегда должны использовать аннотированные теги.


3

Все зависит от того, какой тип тега вы хотите создать:

  • Если вы хотите создать Аннотированные метки, чтобы показать дополнительные метаданные, вы можете сделать это следующим образом: git tag -a v1.0.0.
  • С другой стороны, облегченные теги используются для «закладки» ваших фиксаций для личного пользования: git tag v1.0.0.

Есть несколько других функций тегов, таких как:

  • Список тегов git tag -l -n3. Команда выводит список всех существующих тегов с максимум 3 строками сообщения тега. По умолчанию -n показывает только первую строку.
  • Подробности тега git show <tag_identifier>. Он показывает все, что вам нужно знать о конкретном теге.
  • Сортировка тегов - git tag --sort=<type>
  • Публикация тегов git push origin v1.0. Вы можете использовать git push для тега по отдельности, или вы можете запустить git push --tags, который будет выдвигать все теги одновременно.

Не забудьте проверить статью, связанную с этим тегом, для получения более подробной информации


3

Использование Sourcetree

Вот простые шаги для создания тега GitHub , когда вы выпускаете сборку из master.

  1. Открыть вкладку source_tree

    шаг 1

  2. Щелкните правой кнопкой мыши разделы тегов из тега, которые появляются в левом разделе навигации

    шаг 2

  3. Нажмите на новый тег ()

  4. Появится диалоговое окно для добавления тега и удаления тега
  5. Нажмите на «Добавить тег», чтобы присвоить имя тегу (предпочтительная версия кода).

    шаг 3

  6. Если вы хотите выдвинуть TAG на удаленном компьютере, при создании TAG ref: шаг 5, который дает флажок push TAG to origin, отметьте его, и в удаленном хранилище появится выдвинутый тег

  7. В случае, если при создании TAG вы забыли установить флажок Push to origin , вы можете сделать это позже, щелкнув правой кнопкой мыши на созданном TAG, нажав Push to origin. введите описание изображения здесь


2
В этом ответе объясняется, как создать локальный тег с помощью Sourcetree, но вопрос заключается в том, как перенести тег в удаленный репозиторий (в данном случае GitHub). Вы говорите сделать это в шаге 6, но вы пропустили инструкции для этого.
Рори О'Кейн

@ RoryO'Kane, пожалуйста, проверьте это сейчас. Я обновил свой ответ. Спасибо, что указали на это
Суреш Майдараги

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.