Тег(а точнее лекоговесный) в гите, это алиас на какой-то комит.
Если мы сливаем тег, то у нас нет поточного бранча.
Чтобы понять что за тег у нас слит нужно:
git describe --tags
Чтобы увидеть какие у нас создано локальные теги(список локальных тегов):
git tag
Если у нас очень много тегов, то логично из немного фильтрануть$ git tag -l 'v1.4.2.*'
Теги бывают двух типов:
- lightweight
- annotated
Легковесный тег - это то, что я описал в самом начале, это как бранч, который не имеет дальнейших комитов. Аннотированный - это уже отдельный обьект, который хранится в базе гита, у него своя чексумма, имя, имя комитера, емейл, дата, он также подсисан и провалидирован с помощью GNU Privacy Guard (GPG).
Чтобы создать легковестный, нужно просто:
$ git tag {NAME_OF_LIGHTWEIGHT}
Как мы видим мы к нему не вяжем не отдельного сообщения ничего, у нас просто на чексумму конкретного комита привязывается имя.Если мы попробуем посмотреть данные этого тега, то увидим данные именно комита, на который он был применен:
$ git show v1.4-lw commit 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge: 4a447f7... a6b4c97... Author: Scott ChaconDate: Sun Feb 8 19:02:46 2009 -0800 Merge branch 'experiment'
Чтобы сделать аннотированный тег нужно:
1) Закомитить наши измения и запушить куда-то
2) Создать тег на этот комит (ключ "а" именно и указывает, что это аннотированный тег):
git tag -a {TAG_NAME} -m "Comment"
Если мы делаем тег на комит, который уже не в HEAD, то нужно еще и указать хеш-код комита
git tag -a {TAG_NAME} -m "Comment" {9fceb02HASH_CODE}
3) Запушить тег:
git push --tags
# OR
git push {remote-name} --tags
Но эта команда запушит все наши локальные теги, если нам не нужны они все на удаленном сервере мы можем запушить конкретный:
git push origin {concrete-tag-name}
4) Перепроверить появился ли он в списке существующих тегов:
git tagЧтобы увидеть всю информацию аннотированного тега нужно:
$ git show {ANNOT_TAG}
Чтобы развернуть наш тег на другой машине нужно:
git fetch git checkout NAME_OF_TAG
Комментариев нет:
Отправить комментарий