Работа с тегами в Git :: Хранитель заметок

noteskeeper.ru

Персональный журнал для заметок Владимира Кузнецова

Работа с тегами в Git

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

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

  1. Помечаем локальный коммит

    git tag 12345
    
  2. Отправляем его во внешний репозиторий

    git push origin 12345
    

Удаление тега из репозитория

  1. Удаляем тег локально

    git tag -d 12345
    
  2. Удаляем его во внешнем репозитории

    git push origin :refs/tags/12345
    
  3. Оповещаем каким-либо способом коллег, чтобы они сделали у себя команду из пункта 1

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

Перемещение тега на другой коммит

  1. Принудительно перезаписываем тег

    git tag -f 12345
    
  2. Отправляем во внешний репозиторий с принудительной перезаписью

    git push --force origin 12345
    
  3. Оповещаем коллег как и в случае удаления тега

Дополнение

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

git tag 12345 6ff87c4664981e4397625791c8ea3bbb5f2279a3

Отправить во внешний репозиторий все теги текущей ветки можно одной командой.

git push --tags

Коментарии к заметке 2

  1. Сашич, 03 ноя 2011

    А у нас теги автоматически создаются после каждого деплоя на продакшин и стейджинг. Capistrano сильно выручает.

  2. У нас для деплоя используется самописный скрипт, куда эти команды тоже можно встроить. Правда всем лень, наверное, ещё чуть-чуть автоматизировать процесс.

Добавить комментарий

Блоки кода в строке заключайте в тег <code>.
Чтобы сохранить форматирование блока кода используйте тег <pre>