команда git describe

Основные операции Git


git describeКоманда используется для создания читаемой строки, описывающей текущий коммит на основе системы тегов Git.

git describeКоманда обычно используется для генерации номеров версий, помогая идентифицировать конкретные коммиты, и может применяться при сборке, выпуске или отслеживании конкретных версий.

Базовый синтаксис

git describe [<options>] [<commit>]
  • <commit>: Указывает коммит для описания. По умолчанию используется текущий коммит.
  • <options>: Параметры для настройки формата вывода или поведения.

Общие параметры и использование:

ПараметрыОписаниеПример использования
--tagsИспользовать все теги (включая легковесные теги) для создания описания. По умолчанию,git describeУчитывать только аннотированные теги.git describe --tags
--abbrev=<n>Установить минимальную длину хеша коммита для отображения в<n>символов.git describe --abbrev=8
--longПринудительно использовать длинное описание, включающее хеш коммита и количество коммитов от тега.git describe --long
--exact-matchВозвращать имя тега только когда текущий коммит точно соответствует тегу.git describe --exact-match
--dirtyЕсли в рабочем каталоге есть изменения (незакоммиченные изменения), добавьте к описанию-dirtyсуффикс.git describe --dirty
--match=<pattern>Использовать для описания только теги, соответствующие указанному шаблону.git describe --match "v1.*"
--candidates=<n>Ограничить количество тегов, рассматриваемых для описания; по умолчанию — 10.git describe --candidates=5
--alwaysОтображать хеш коммита, даже если тег не найден.git describe --always

Типичное использование

1. Описать текущий коммит

Сгенерировать строку описания на основе самого последнего тега:

git describe

Пример вывода:

v1.2-15-g2414721

Вывод здесь указывает на то, что текущий коммит отстоит на 15 коммитов от ближайшего тега v1.2, а хеш текущего коммита — 2414721.

2. Описать с использованием всех тегов

Включить все теги (легковесные и аннотированные теги), чтобы сгенерировать описание:

git describe --tags

3. Отобразить описание в длинном формате

Показать развёрнутое описание, включая хеш и количество коммитов от тега:

git describe --long

4. Возвращать только имя тега, когда коммит точно совпадает с тегом

Если текущий коммит точно совпадает с тегом, возвращается только имя тега:

git describe --exact-match

5. Добавить суффикс -dirty

Если в рабочем каталоге есть незакоммиченные изменения, добавьте суффикс -dirty к описанию:

git describe --dirty

6. Использовать только теги, соответствующие шаблону

Использовать теги, соответствующие указанному шаблону, для описания:

git describe --match "v1.*"

7. Показывать хеш коммита, даже если тег не найден

Показывать хеш текущего коммита, даже если тега нет:

git describe --always

Основные операции Git

Другие расширения