Перейти к содержанию

Git: работа с тэгами

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

Тэги бывают легкими и аннотированными. Легкий тэг - это просто некоторое название, строка, которая указывает на конкретный коммит. Аннотированный тэг содержит не только название, но и дату, имя и адрес автора и т.п., то есть более подробную информацию.

Если не указать, к какому коммиту добавляется тэг, он будет добавлен к последнему. Если нужно указать тэг для определенного коммита (а это удобно, т.к. можно тэгировать коммита постфактум), то нужно указать идентификатор коммита или первые шесть символов идентификатора.

Далее - несколько примеров команд использования тэгов.

Просмотреть список тэгов:

git tag

Кстати, тэги отображаются также рядом с идентификаторами коммитов в выводе команды git log.

Добавить легкий тэг к последнему коммиту:

git tag v.1.0

Добавить легкий тэг к выбранному коммиту:

git tag v.1.0 009b44Your Name"

Добавить аннотированный тэг:

git tag -a v.1.0 -m 'comment for tag'

Отобразить содержимое коммита по тэгу:

git show v.1.0

Удалить тэг:

git tag -d v.1.0

Удалить можно также и тэг из произвольного коммита. Для этого укажите его идентификатор, как выше, в примере с добавлением тэга.

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

git push TAGNAME

Но чтобы таким образом не пушить отдельно каждый тэг, можно передать сразу все:

git push --tags

Ну и чтобы перейти к тэгу, выполните:

git checkout TAGNAME

Но здесь руководство предостерегает. Если перейти к тэгу, получив версии файлов и затем внести в них изменения, то когда после мы выполним пуш, будет создан коммит вне всяких веток. Найти его можно только по идентификатору и перейти к нему также можно будет только по идентификатору. Получается такой коммит-сирота. Руководство рекомендует в случаях, когда вам требуется внести изменения в одном из прошлых коммитов - создавать ветку от того места.