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
В этой статье обсудим один из важнейших аргументов функции, который ТЫ, мой друг, будешь использовать в каждом своем боте.  Ты с
img
Введение    Настало время глубже погрузиться во взаимодействие человека с ботом. Сегодня изучим декоратор message_handler(). Узн
img
Погружение в aiogram (#5 Отправка стикеров)   Введение   Продолжаем изучать функционал библиотеки aiogram для работы с Telegram
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
img
Сегодня мы рассмотрим, как настроить и использовать PHP в проекте. Но прежде чем начать, нужно понять, что такое PHP. Что такое
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59