Как использовать теги git?
Главное меню » Ubuntu » Как использовать теги git?
В этой статье мы обсудим концепцию тегов Git и то, как работает команда тегов git. В этой статье мы рассмотрим различные типы тегов, как создавать новые теги, список тегов, удаление тега и многое другое. Несколько команд, которые мы выполнили в системе Ubuntu 20.04, мы подробно рассмотрим в оставшейся части раздела.
Создать новый тег
Существует два разных типа тегов Git:
Аннотированные теги
Аннотированные теги сохраняются как полный объект в базе данных Git. Эти типы тегов хранят некоторую дополнительную информацию метаданных, такую как имя теггера, идентификатор электронной почты теггера и дата. Аннотированные теги хранятся с сообщением тегирования. В git рекомендуется хранить теги git в виде аннотированных тегов поверх облегченных. Используя аннотированные теги, вы можете хранить все связанные метаданные в базе данных.
Чтобы создать аннотированный тег, откройте приложение терминала, нажав Ctrl + Alt + t, и выполните следующую команду:
Легкие теги
Этот тип тегов используется для «закладок» к фиксации; Облегченные теги – это просто имя или конкретный указатель на фиксацию. Легкие теги полезны для быстрого создания ссылок на соответствующие коммиты.
Следующая команда используется для создания облегченных тегов:
Пример:
В следующем примере предположим, что мы создали легкий тег с именем Release_1_0.
Просмотр тегов
После того, как вы создали теги, вы можете отобразить сведения о теге, используя следующую команду:
В приведенной выше команде мы распечатали детали тега Release_1_0. На следующем изображении отображаются сведения о теге:
Список тегов
Вы также можете отобразить все имена тегов, используя следующую команду Git tag с опцией –l:
Удаление или удаление тегов
Во-первых, чтобы вывести список всех тегов хранилища в репозитории, выполните следующую команду:
Теперь, используя следующую команду, вы можете удалить или удалить теги как из удаленного, так и из локального репозитория.
Заключение
В этой статье мы узнали, как использовать теги Git. Пометка – это полезная функция, с помощью которой вы можете создать клонированный образ репозитория Git. Вы можете дать более подходящее и понятное имя конкретному проекту git. В зависимости от вашего удобства вы можете создать два разных типа тегов: аннотированные или облегченные, о которых мы говорили выше. Мы надеемся, что теперь вы лучше понимаете использование тегов Git в репозитории проекта Git.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Работа с тегами
Как и большинство СКВ, Git имеет возможность помечать определённые моменты в истории как важные. Как правило, эта функциональность используется для отметки моментов выпуска версий (v1.0, и т. п.). Такие пометки в Git называются тегами. В этом разделе вы узнаете, как посмотреть имеющиеся теги, как создать новые или удалить существующие, а также какие типы тегов существуют в Git.
Просмотр списка тегов
Данная команда перечисляет теги в алфавитном порядке; порядок их отображения не имеет существенного значения.
Так же можно выполнить поиск тега по шаблону. Например, репозиторий Git содержит более 500 тегов. Если вы хотите посмотреть теги выпусков 1.8.5, то выполните следующую команду:
Создание тегов
Git использует два основных типа тегов: легковесные и аннотированные.
Легковесный тег — это что-то очень похожее на ветку, которая не изменяется — просто указатель на определённый коммит.
А вот аннотированные теги хранятся в базе данных Git как полноценные объекты. Они имеют контрольную сумму, содержат имя автора, его e-mail и дату создания, имеют комментарий и могут быть подписаны и проверены с помощью GNU Privacy Guard (GPG). Обычно рекомендуется создавать аннотированные теги, чтобы иметь всю перечисленную информацию; но если вы хотите сделать временную метку или по какой-то причине не хотите сохранять остальную информацию, то для этого годятся и легковесные.
Аннотированные теги
С помощью команды git show вы можете посмотреть данные тега вместе с коммитом:
Здесь приведена информация об авторе тега, дате его создания и аннотирующее сообщение перед информацией о коммите.
Легковесные теги
На этот раз при выполнении git show для этого тега вы не увидите дополнительной информации. Команда просто покажет коммит:
Отложенная расстановка тегов
Также возможно помечать уже пройденные коммиты. Предположим, история коммитов выглядит следующим образом:
Теперь предположим, что вы забыли отметить версию проекта v1.2, которая была там, где находится коммит «Update rakefile». Вы можете добавить тег и позже. Для отметки коммита укажите его контрольную сумму (или её часть) как параметр команды:
Проверим, что коммит отмечен:
Обмен тегами
Теперь, если кто-то клонирует (clone) или выполнит git pull из вашего репозитория, то он получит вдобавок к остальному и ваши метки.
Удаление тегов
Обратите внимание, что при удалении тега не происходит его удаления с внешних серверов. Существует два способа изъятия тега из внешнего репозитория.
Первый способ — это выполнить команду git push :refs/tags/ :
Это следует понимать как обновление внешнего тега пустым значением, что приводит к его удалению.
Второй способ убрать тег из внешнего репозитория более интуитивный:
Переход на тег
Если вы хотите получить версии файлов, на которые указывает тег, то вы можете сделать git checkout для тега. Однако, это переведёт репозиторий в состояние «detached HEAD», которое имеет ряд неприятных побочных эффектов.
Если в состоянии «detached HEAD» внести изменения и сделать коммит, то тег не изменится, при этом новый коммит не будет относиться ни к какой из веток, а доступ к нему можно будет получить только по его хешу. Поэтому, если вам нужно внести изменения — исправить ошибку в одной из старых версий — скорее всего вам следует создать ветку:
Tags API
List project repository tags
Get a list of repository tags from a project, sorted by name in reverse alphabetical order. This endpoint can be accessed without authentication if the repository is publicly accessible.
Parameters:
| Attribute | Type | Required | Description |
|---|---|---|---|
| id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
| order_by | string | no | Return tags ordered by name or updated fields. Default is updated |
| sort | string | no | Return tags sorted in asc or desc order. Default is desc |
| search | string | no | Return list of tags matching the search criteria. You can use ^term and term$ to find tags that begin and end with term respectively. |
Support for search was introduced in GitLab 11.8.
Get a single repository tag
Get a specific repository tag determined by its name. This endpoint can be accessed without authentication if the repository is publicly accessible.
Parameters:
| Attribute | Type | Required | Description |
|---|---|---|---|
| id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
| tag_name | string | yes | The name of the tag |
Create a new tag
Creates a new tag in the repository that points to the supplied ref.
Parameters:
| Attribute | Type | Required | Description |
|---|---|---|---|
| id | integer/string | yes | The ID or URL-encoded path of the project owned by the authenticated user |
| tag_name | string | yes | The name of a tag |
| ref | string | yes | Create tag using commit SHA, another tag name, or branch name |
| message | string | no | Creates annotated tag |
The message is null when creating a lightweight tag. Otherwise, it contains the annotation.
The target contains the tag objects ID when creating annotated tags, otherwise it contains the commit ID when creating lightweight tags.
In case of an error, status code 405 with an explaining error message is returned.
Delete a tag
Deletes a tag of a repository with given name.
Git tag
Использование тегов
Создание тега
Для создания нового тега выполните следующую команду:
Аннотируемые теги
Аннотируемые теги хранятся в базе данных Git в виде полных объектов. Напомним, в них находятся дополнительные метаданные, такие как имя создателя тега, адрес электронной почты и дата. Аналогично комментариям к коммитам существуют комментарии к аннотируемым тегам. Кроме того, для обеспечения безопасности аннотируемые теги можно подписывать и проверять с помощью GNU Privacy Guard (GPG). Рекомендуется использовать аннотированные, а не облегченные теги, чтобы иметь доступ ко всем связанным метаданным.
Облегченные теги
Просмотр тегов
Чтобы просмотреть список сохраненных в репозитории тегов, выполните следующую команду.
Она выведет список тегов:
Применение тегов к старым коммитам
Переназначение тегов. Замена старых тегов
Если вы попытаетесь создать тег с таким же идентификатором, как у существующего тега, Git выдаст ошибку, как показано ниже:
Кроме того, если вы попытаетесь создать тег для старого коммита с существующим идентификатором тега, Git выдаст такую же ошибку.
Публикация: отправка тегов в удаленный репозиторий
Публикация тегов похожа на отправку веток. По умолчанию команда git push не отправляет теги. Их необходимо указать в команде git push явным образом.
Переключение тегов
Удаление тегов
Резюме
Готовы изучить Git?
Ознакомьтесь с этим интерактивным обучающим руководством.
Git: работа с тегами (метками)
Документация тут>>>, ниже примеры работы с тегами.
Кратко о метках в примерах.
Создаём каталог для тестового репозитория:
Инициализируем пустой репозиторий:
Создаём тестовый файл:
Добавление тегов
Теги в Git есть двух основных типов:
Можно добавить тег на старые коммиты.
Проверяем историю коммитов:
Добавляем тег на предыдущий коммит – 96012d8d14f80695339a3d215b2c1f5f2475f040:
Просмотр тегов
Что бы получить список всех тегов – просто вызываем tag без аргументов:
Для просмотра информации о теге – show :
И просмотр легковесной метки:
В случае легковесного тега сохраняется информация только о самом коммите, но нет ничего об авторе тега.
push тегов в репозиторий
Что бы сохранить теги в удалённый репозиторий – их необходимо пушить отдельно от коммитов.
Клоним тестовый репозиторий с Гитхаба:
Добавляем файлик, коммитим, добавляем тег:
Если выполнить git push сейчас без указания тега – он в Gihub не добавится.
checkout по тегам
Что бы получить версию кода по тегам – используем checkout и путь к tags :
И чекаутим старую версию – 1.0:
Возвращаемся в master:






