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.47.0 no changes
- 2.46.0 07/29/24
- 2.43.1 → 2.45.2 no changes
- 2.43.0 11/20/23
- 2.42.1 → 2.42.3 no changes
- 2.42.0 08/21/23
- 2.39.1 → 2.41.2 no changes
- 2.39.0 12/12/22
- 2.21.1 → 2.38.5 no changes
- 2.21.0 02/24/19
- 2.18.1 → 2.20.5 no changes
- 2.18.0 06/21/18
- 2.10.5 → 2.17.6 no changes
- 2.9.5 07/30/17
- 2.7.6 → 2.8.6 no changes
- 2.6.7 05/05/17
- 2.1.4 → 2.5.6 no changes
- 2.0.5 12/17/14
概述
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>
描述
显示本地仓库中可用的引用以及相关的提交 ID。可使用模式对结果进行过滤,并将标记反引用到对象 ID 中。此外,它还可用于测试特定引用是否存在。
默认情况下,显示标签、标题和远程引用。
--exclude-existing
表单是一个反向过滤器。它从标准输入流中读取引用,每行一个引用,并显示那些不存在于本地仓库中的引用。
--exists
表单可用于检查单个引用是否存在。此表单不会验证引用是否解析到实际对象。
我们鼓励使用该工具,而不是直接访问 .git
目录下的文件。
选项
- --head
-
显示 HEAD 参考,即使它通常会被过滤掉。
- --branches
- --tags
-
Limit to local branches and local tags, respectively. These options are not mutually exclusive; when given both, references stored in "refs/heads" and "refs/tags" are displayed. Note that
--heads
is a deprecated synonym for--branches
and may be removed in the future. - -d
- --dereference
-
也可将引用标记转换为对象 ID。它们将以
^{}
的形式显示。 - -s
- --hash[=<n>]
-
只显示 OID(对象 ID),不显示引用名称。与
--dereference
结合使用时,在 OID 之后仍将显示取消引用的标记。 - --verify
-
通过要求精确的引用路径,启用更严格的引用检查。 除返回错误代码 1 外,如果未指定
--quiet
,还会打印错误信息。 - --exists
-
检查给定的引用是否存在。如果存在,则返回 0 的退出代码;如果不存在,则返回 2 的退出代码;如果查找引用失败,则返回 1 的退出代码。
- --abbrev[=<n>]
-
缩写对象名称。 使用
--hash
时,不必说--hash --abbrev
;--hash=n
也可以。 - -q
- --quiet
-
不向标准输出流打印任何结果。可与
--verify
一起使用,静默检查引用是否存在。 - --exclude-existing[=<模式>]
-
让
git show-ref
成为一个过滤器,从标准输入流中读取格式为^(?:<任何东西>\s)?<引用名称>(?:\^{})?$
的多个引用,并对每个引用执行以下操作: (1) 如果行末有^{}
,则在行末去掉^{}
; (2) 如果提供的模式与引用名称不匹配,则忽略; (3) 如果引用名不是格式正确的引用名,则警告并跳过; (4) 如果引用名称是本地仓库中存在的引用,则忽略; (5) 否则输出该行。 - <模式>…
-
显示与一个或多个模式匹配的引用。模式从全名末尾开始匹配,只匹配完整的部分,例如,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
)选项时,输出格式为:
<对象 ID> LF
例如,
$ git show-ref --branches --hash 2e3ba0114a1f52b47df29743d6915d056be13278 185008ae97960c8d551adcd9e23565194651b5d1 03adf42c988195b50e1a1935ba5fcbc39b2b029b ...
实例
要显示所有称为 "master" 的引用,无论是标记、标头还是其他,也不管它们在引用命名层次中的位置有多深,都可以使用 "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 不是一个有效的分支"
来检查某个分支是否存在(请注意,我们实际上并不想显示任何结果,而且我们希望使用完整的引用名称,以避免引发部分匹配不明确的问题)。
To show only tags, or only proper branch heads, use --tags
and/or --branches
respectively (using both means that it shows tags and branches, but not other random references under the refs/ subdirectory).
要自动取消引用标记对象,请使用 -d
或 --dereference
标志,这样就可以执行
git show-ref --tags --dereference
来获取所有标记及其引用内容的列表。
GIT
属于 git[1] 文档