команда git describe
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
Другие расширения