設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.46.1 → 2.50.1 無更改
-
2.46.0
2024-07-29
- 2.43.1 → 2.45.4 無更改
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 無更改
-
2.42.0
2023-08-21
- 2.39.1 → 2.41.3 無變更
-
2.39.0
2022-12-12
- 2.21.1 → 2.38.5 無變更
-
2.21.0
2019-02-24
- 2.18.1 → 2.20.5 無更改
-
2.18.0
2018-06-21
- 2.10.5 → 2.17.6 無變更
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 無更改
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 無更改
-
2.0.5
2014-12-17
概要
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
形式是一個執行逆向操作的過濾器。它從標準輸入(stdin)讀取引用,每行一個引用,並顯示本地倉庫中不存在的引用。
--exists
形式可用於檢查單個引用是否存在。此形式不驗證引用是否解析為實際物件。
建議使用此工具,而不是直接訪問 .git
目錄下的檔案。
選項
- --head
-
顯示 HEAD 引用,即使它通常會被過濾掉。
- --branches
- --tags
-
分別限制為本地分支和本地標籤。這些選項並非互斥;當兩者都給定後,會顯示儲存在 "refs/heads" 和 "refs/tags" 中的引用。請注意,
--heads
是--branches
的已棄用同義詞,將來可能會被移除。 - -d
- --dereference
-
也將標籤解引用為物件 ID。它們將以
^{}
字尾顯示。 - -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>]
-
使
git
show-ref
作為過濾器,從標準輸入(stdin)讀取形式為 ^(?:<anything>\s)?<refname>(?:\^{})?$ 的引用,並對每個引用執行以下操作:(1) 如果行尾有^{}
,則去除;(2) 如果提供了模式且與 refname 不頭部匹配,則忽略;(3) 如果 refname 不是格式良好的引用名稱,則發出警告並跳過;(4) 如果 refname 是本地倉庫中存在的引用,則忽略;(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
以獲取所有標籤及其解引用的內容的列表。