Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.46.1 → 2.53.0 no changes
-
2.46.0
2024-07-29
- 2.43.1 → 2.45.4 no changes
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 no changes
-
2.42.0
2023-08-21
- 2.39.1 → 2.41.3 no changes
-
2.39.0
2022-12-12
- 2.21.1 → 2.38.5 no changes
-
2.21.0
2019-02-24
- 2.18.1 → 2.20.5 no changes
-
2.18.0
2018-06-21
- 2.10.5 → 2.17.6 no changes
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 no changes
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 no changes
-
2.0.5
2014-12-17
ОБЗОР
git show-ref [--head] [-d | --dereference] [-s | --hash[=<n>]] [--abbrev[=<n>]] [--branches] [--tags] [--] [<шаблон>…] git show-ref --verify [-q | --quiet] [-d | --dereference] [-s | --hash[=<n>]] [--abbrev[=<n>]] [--] [<ссылка>…] git show-ref --exclude-existing[=<шаблон>] git show-ref --exists <ссылка>
ОПИСАНИЕ
Отображает ссылки, доступные в локальном репозитории, вместе со связанными идентификаторами коммитов. Результаты можно фильтровать с помощью шаблона, а метки можно разыменовывать в идентификаторы объектов. Кроме того, его можно использовать для проверки существования конкретной ссылки.
По умолчанию показывает метки, головы и внешние ссылки.
Форма --exclude-existing — это фильтр, который делает обратное. Он читает ссылки из stdin, по одной ссылке в строке, и показывает те, которые не существуют в локальном репозитории.
Форму --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
-
Не выводить никаких результатов в stdout. Может использоваться с
--verifyдля беззвучной проверки существования ссылки. - --exclude-existing[=<pattern>]
-
Заставляет
gitshow-refдействовать как фильтр, который читает ссылки из stdin в форме ^(?:<что-угодно>\s)?<имя-ссылки>(?:\^{})?$ и выполняет следующие действия с каждой: (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 <ссылка> 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, а в случае проверки (verification) покажет сообщение об ошибке.
Для использования в сценариях вы можете попросить его быть тихим с помощью флага --quiet, что позволяет делать такие вещи, как
git show-ref --quiet --verify -- "refs/heads/$headname" || echo "$headname не является допустимой веткой"
чтобы проверить, существует ли конкретная ветка или нет (обратите внимание, как мы на самом деле не хотим показывать никаких результатов, и мы хотим использовать для этого полное имя ссылки, чтобы не вызвать проблему с неоднозначными частичными совпадениями).
Чтобы показывать только метки или только собственно головы веток, используйте соответственно --tags и/или --branches (использование обоих означает, что он показывает метки и ветки, но не другие случайные ссылки в подкаталоге refs/).
Для автоматического разыменования объектов-меток используйте флаг -d или --dereference, так что вы можете сделать
git show-ref --tags --dereference
чтобы получить список всех меток вместе с тем, на что они указывают.
GIT
Является частью пакета git[1]