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
См. также
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