Spec-Zone.ru › Git

git-show-ref

Имя

git-show-ref - Список ссылок в локальном репозитории

Синтаксис

git show-ref [--head] [-d | --dereference]
             [-s | --hash[=<n>]] [--abbrev[=<n>]] [--branches] [--tags]
             [--] [<pattern>…​]
git show-ref --verify [-q | --quiet] [-d | --dereference]
             [-s | --hash[=<n>]] [--abbrev[=<n>]]
             [--] [<ref>…​]
git show-ref --exclude-existing[=<pattern>]
git show-ref --exists <ref>

Описание

Отображает доступные в локальном репозитории ссылки вместе с соответствующими идентификаторами коммитов. Результаты могут быть отфильтрованы с помощью шаблона, а теги могут быть развёрнуты в идентификаторы объектов. Кроме того, его можно использовать для проверки существования определённой ссылки.

По умолчанию отображаются теги, ветки и удалённые ссылки.

Форма --exclude-existing представляет собой фильтр, который выполняет обратную операцию. Она считывает ссылки из стандартного ввода, по одной ссылке в строке, и отображает те, которые отсутствуют в локальном репозитории.

Форма --exists может использоваться для проверки существования одной ссылки. Эта форма не проверяет, разрешается ли ссылка на фактический объект.

Использование этой утилиты рекомендуется вместо непосредственного доступа к файлам в каталоге .git.

Параметры

--head

Отобразить ссылку HEAD, даже если она обычно отфильтровывается.

--branches
--tags

Ограничить отображение локальными ветками и локальными тегами соответственно. Эти параметры не взаимоисключающие; при их совместном использовании отображаются ссылки, хранящиеся в "refs/heads" и "refs/tags". Обратите внимание, что --heads является устаревшим синонимом для --branches и может быть удалён в будущем.

-d
--dereference

Развернуть теги в идентификаторы объектов также. Они будут показаны с добавлением ^{}.

-s
--hash[=<n>]

Отобразить только OID, а не имя ссылки. При совместном использовании с --dereference, развёрнутый тег всё равно будет показан после OID.

--verify

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

--exists

Проверить, существует ли данная ссылка. Возвращает код выхода 0, если ссылка существует, 2, если она отсутствует, и 1 в случае, если поиск ссылки завершился ошибкой, отличной от отсутствия ссылки.

--abbrev[=<n>]

Сократить имя объекта. При использовании --hash, вам не нужно указывать --hash --abbrev; --hash=n будет достаточно.

-q
--quiet

Не выводить никакие результаты в стандартный вывод. Может использоваться с --verify для бесшумной проверки существования ссылки.

--exclude-existing[=<pattern>]

Сделать git show-ref фильтром, который считывает ссылки из стандартного ввода в формате ^(?:<anything>\s)?<refname>(?:\^{})?$ и выполняет следующие действия для каждой: (1) удаляет ^{} в конце строки, если таковые имеются; (2) игнорирует, если шаблон указан и не соответствует началу имени ссылки; (3) выводит предупреждение, если имя ссылки не является правильно сформированным именем ссылки, и пропускает; (4) игнорирует, если имя ссылки является ссылкой, существующей в локальном репозитории; (5) в противном случае выводит строку.

<pattern>…​

Отобразить ссылки, соответствующие одному или нескольким шаблонам. Шаблоны сопоставляются с конца полного имени, и сопоставляются только полные части, например, master соответствует refs/heads/master, refs/remotes/origin/master, refs/tags/jedi/master, но не refs/heads/mymaster или refs/remotes/master/jedi.

Вывод

Вывод представлен в формате:

<oid> SP <ref> LF

Например,

$ git show-ref --head --dereference
832e76a9899f560a90ffd62ae2ce83bbeff58f54 HEAD
832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/master
832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/origin
3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c
6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{}
055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}
...

При использовании --hash (и не --dereference), вывод имеет формат:

<oid> LF

Например,

$ git show-ref --branches --hash
2e3ba0114a1f52b47df29743d6915d056be13278
185008ae97960c8d551adcd9e23565194651b5d1
03adf42c988195b50e1a1935ba5fcbc39b2b029b
...

Примеры

Для отображения всех ссылок, называемых "master", независимо от того, теги это, ветки или что-то ещё, и вне зависимости от уровня в иерархии именования ссылок, используйте:

        git show-ref master

Это отобразит "refs/heads/master", но также и "refs/remote/other-repo/master", если такие ссылки существуют.

При использовании флага --verify, команда требует точного пути:

        git show-ref --verify refs/heads/master

будет соответствовать только точной ветке, названной "master".

Если ничего не совпадает, git show-ref вернёт код ошибки 1, а в случае проверки отобразит сообщение об ошибке.

Для скриптов вы можете попросить его работать тихо с помощью флага --quiet, что позволяет вам делать такие вещи, как

        git show-ref --quiet --verify -- "refs/heads/$headname" ||
                echo "$headname is not a valid branch"

для проверки существования конкретной ветки (обратите внимание, как мы на самом деле не хотим отображать результаты и хотим использовать полное имя ссылки для этого, чтобы не возникла проблема с неоднозначными частичными соответствиями).

Чтобы отобразить только теги или только правильные заголовки веток, используйте --tags и/или --branches соответственно (использование обоих означает, что отображаются теги и ветки, но не другие случайные ссылки в подкаталоге refs/).

Для автоматического развёртывания объектов тегов используйте флаги -d или --dereference, так что вы можете сделать

        git show-ref --tags --dereference

чтобы получить список всех тегов вместе с тем, на что они ссылаются.

Файлы

.git/refs/*, .git/packed-refs

См. также

git-for-each-ref[1], git-ls-remote[1], git-update-ref[1], gitrepository-layout[5]

show-ref

© 2005–2026 Linus Torvalds and others
Licensed under the GNU General Public License version 2.
https://git-scm.com/docs/git-show-ref

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API