img

Что такое теги версии в Git и как ими пользоваться?

 

Отслеживание версий программного обеспечения – довольно сложная задача, и Git помогает с ней справиться. С помощью теговой системы Git вы можете создавать версионированные номера версий, которые бы указывали на определенные коммиты, и использовать их в автоматизации CI/CD для публикации версий. 

Тегированные версии в Git

Теги Git очень напоминают ветки Git. Это отметки, которые указывают на определенные коммиты, и их можно использовать для извлечения репозитория в определенный момент времени. Однако их нельзя обновить или изменить (в отличие от ветвей), и они всегда указывают на конкретную версию.

Как правило, теги используются для присвоения определенным выпускам номеров версий, и в большинстве случаев для этого используется формат семантического версионирования (Major.Minor.Patch). Такой подход довольно полезен с точки зрения отслеживания версий, особенно если при развертывании возникают проблемы и необходимо вернуться к последнему одобренному тегу. 

Кроме того, теги используются для передачи сигнала конвейерам CI/CD о том, что необходимо опубликовать версию. Некоторые репозиторию могут быть настроены на публикацию «последнего» выпуска для каждого отдельного коммита, особенно после тестирования ветвей разработки. Также теги часто используют для того, чтобы CI-конвейеры выпуска запускались и развертывались только по специальному запросу.

Когда вы отправляете изменения в удаленный репозиторий, например, GitHub, ваши теги будут отображаться во вкладке «Releases» (Версии). Таким образом, другие люди могут клонировать и загружать репозитории по этому тегу. 

Выгрузить определенные теги можно с помощью команды

git checkout 

что аналогично извлечению ветки. 

git checkout v1.0.0

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

Для того, чтобы создать простой тег, много сил вам не потребуется. Вам нужно просто извлечь коммит или ветку, которой вы хотите присвоить тег, и запустить команду git tag с названием тега. 

git checkout master
git tag v1.0.0

В любом случае есть общепринятая практика, которая подразумевает использование комментированных тегов, то есть тегов, которые позволяют задавать описание и могут хранить дополнительную информацию о том, кто их создал и когда (по аналогии с коммитами).

git tag -a v1.0.0 -m "New Release Version - Summary"

Кроме того, вы можете присваивать теги коммитам, которые были созданы ранее, при этом не извлекая их:

git tag -a v1.2 commit_id

Теги нельзя отправлять в удаленные репозитории, такие как GitHub, с помощью стандартной команды Git push. Эту команду необходимо запускать с флагом --tags или отправлять имя тега вручную.

git push origin --tags

Удаление и редактирование тегов

Теги можно удалять, но важно помнить, что, если вы удалите теги с удаленных серверов, то можете подпортить работу других людей, которые работают с вашим репозиторием. Однако, так как вы на самом деле не редактируете историю Git, то это больше похоже на удаление старой ветки, которая не затрагивает ни один из текущих коммитов. 

Вы можете удалить тег по имени с помощью флага -d:

git tag -d v1.0.0

Вы даже можете удалить их из удаленного репозитория с помощью следующей команды:

git push origin --delete v1.0.0

А для того, чтобы отредактировать тег, вам понадобиться флаг -f, который заставит Git переписать существующий тег:

git tag -f v1.0.0

Создание версий на GitHub

GitHub также поддерживает теги, но расширяет их возможности за счет собственной системы версий (Releases). Версии можно создать из тегов, любого конкретного коммита или с помощью указателя HEAD на любую текущую ветку. 

Основная цель публикации версий – предоставить людям для загрузки заранее собранные двоичные файлы. Такая функция довольно полезна на GitHub, но теги ее предоставить не могут. В случае тегов пользователям все равно придется клонировать определенный тег и производить сборку из исходного кода.

Еще одна цель – документирование примечаний к версиям. Система версий GitHub также поддерживает Markdown. Таким образом, пользователи могут легко просматривать версии и наблюдать за их большими изменениями с течением времени.

Создать версию довольно легко. Нажмите «Releases» на боковой панели вашего репозитория и создайте новую версию:

На этом экране вы можете ввести примечания к версии с помощью Markdown и перетащить двоичные файлы, необходимые для этой версии. GitHub автоматически предоставит вам ссылку на исходный код по этому тегу.

Кроме того, вы можете создавать версии автоматически с помощью GitHub Actions. Это избавит вас от постоянной загрузки двоичных файлов. Таким образом, вы сможете автоматизировать ваш репозиторий.

Ссылка
скопирована
Программирование
Скидка 25%
Python-программист с нуля
Стань разработчиком на одном из самых популярных языков программирования.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
  Хотите разрабатывать игры на Python? Здесь представлен полный обзор лучших библиотек и фреймворков Python, которые вы можете и
img
Если вы хорошо знаете, что такое глубокое обучение, что, скорее всего, не раз слышали такую фразу: «PyTorch против TensorFlow».
img
  Введение Что такое стек и куча? И то, и то область памяти, но с разными механизмами распределения и управления ресурсами памят
img
  Если вы уже давно работаете с SEO, то, возможно, сталкивались с одной из концепций рендеринга - рендеринга на стороне сервера
img
Введение За счет ветвления в Git разработчики могут работать сразу над несколькими функциями или изменениями, не мешая друг друг
img
Управление памятью в операционных системах Введение Управление памятью – это критически важная и при этом довольно сложная задач
Комментарии
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59