>> >> >> Reference << << << <<<<<<Ref>>>>>>
show-ref
Modified: 2025-12-31 | Author:ljf12825

git show-ref专门用于列出和验证Git仓库中的引用

注解

在Git中,“引用”是一个指向提交的指针。最常见的引用就是分支和标签

git show-ref的作用就是将这些引用和它们指向的提交ID(SHA-1哈希值)清晰地打印出来

核心功能

git show-ref的核心工作是显示Git仓库中的所有引用及其对应的SHA-1值。引用包括分支、标签、远程跟踪分支等

基本用法

在不加任何参数的情况下,git show-ref会列出所有本地引用(包括分支、标签和远程跟踪分支)

$ git show-ref
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b refs/heads/main
c4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b refs/heads/feature-branch
d4a5d3e7e4a4e4a4e4a4e4a4e4a4e4a4e4a4e4a4 refs/tags/v1.0
e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4 refs/remotes/origin/main

每一行都遵循<哈希值> <引用路径>的格式

常用选项和参数

git show-ref提供了几个非常实用的选项来过滤和格式化输出

$ git show-ref --heads
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b refs/heads/main
c4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b refs/heads/feature-branch
$ git show-ref --tags
d4a5d3e7e4a4e4a4e4a4e4a4e4a4e4a4e4a4e4a4 refs/tags/v1.0
e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5 refs/tags/v1.1
$ git show-ref --heads refs/remotes
e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4 refs/remotes/origin/main
f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5 refs/remotes/origin/develop
# 假设 v1.0 是一个附注标签
$ git show-ref --tags --dereference
e5f6a7b8c9d... refs/tags/v1.0        # 标签对象本身的哈希值
a1b2c3d4e5f... refs/tags/v1.0^{}     # 标签最终指向的提交哈希值
g7h8i9j0k1l... refs/tags/v1.1        # v1.1 是轻量标签,直接指向提交
$ git show-ref --heads -s
f1e8e6e8a5c...
a1b2c3d4e5f...
# 检查 main 分支是否存在
$ git show-ref --verify refs/heads/main
a1b2c3d4e5f... refs/heads/main

# 如果引用不存在,命令会返回错误码且无输出
$ git show-ref --verify refs/heads/non-existent-branch
error: refs/heads/non-existent-branch does not exist
# 列出所有以 ‘feat’ 开头的分支
$ git show-ref --heads 'refs/heads/feat*'