設定與配置
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢查與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.46.1 → 2.47.0 無變更
-
2.46.0
07/29/24
- 2.43.1 → 2.45.2 無變更
-
2.43.0
11/20/23
- 2.42.1 → 2.42.3 無變更
-
2.42.0
08/21/23
- 2.39.1 → 2.41.2 無變更
-
2.39.0
12/12/22
- 2.21.1 → 2.38.5 無變更
-
2.21.0
02/24/19
- 2.18.1 → 2.20.5 無變更
-
2.18.0
06/21/18
- 2.10.5 → 2.17.6 無變更
-
2.9.5
07/30/17
- 2.7.6 → 2.8.6 無變更
-
2.6.7
05/05/17
- 2.1.4 → 2.5.6 無變更
-
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>
描述
顯示本地儲存庫中可用的參考,以及相關的 commit ID。 可以使用模式篩選結果,並且可以將標籤取消參照為物件 ID。 此外,它可以用於測試特定參考是否存在。
預設情況下,會顯示標籤、heads 和遠端參考。
--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 不是格式良好的 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" 的參考,無論是標籤、heads 或任何其他,且無論它們在參考命名層次結構中有多深,請使用
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"
檢查特定分支是否存在(請注意,我們實際上不希望顯示任何結果,並且我們希望使用完整的 refname,以避免觸發不明確的部分匹配問題)。
要僅顯示標籤,或僅顯示正確的分支 heads,請分別使用 --tags
和/或 --branches
(同時使用兩者意味著它會顯示標籤和分支,但不顯示 refs/ 子目錄下的其他隨機參考)。
要執行自動標籤物件取消參照,請使用 -d
或 --dereference
旗標,這樣你可以執行
git show-ref --tags --dereference
以取得所有標籤及其取消參照的列表。
GIT
屬於 git[1] 套件的一部分