日本語 ▾ トピック ▾ 最新バージョン ▾ git-show-ref は 2.46.0 で最終更新されました

名前

git-show-ref - ローカルリポジトリ内の参照を一覧表示

概要

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 形式は、その逆を行うフィルターです。標準入力から1行に1つの参照を読み取り、ローカルリポジトリに存在しない参照を表示します。

--exists 形式は、単一の参照の存在を確認するために使用できます。この形式は、参照が実際のオブジェクトに解決されるかどうかは検証しません。

.git ディレクトリの下のファイルに直接アクセスする代わりに、このユーティリティを使用することが推奨されます。

オプション

--head

通常はフィルタリングされる場合でも、HEAD 参照を表示します。

--branches
--tags

それぞれ、ローカルブランチとローカルタグに限定します。これらのオプションは排他的ではありません。両方指定すると、「refs/heads」と「refs/tags」に格納されている参照が表示されます。なお、--heads--branches の非推奨の同義語であり、将来削除される可能性があります。

-d
--dereference

タグもオブジェクト ID にデリファレンスします。^{} が追加されて表示されます。

-s
--hash[=<n>]

参照名ではなく OID のみを表示します。--dereference と組み合わせると、デリファレンスされたタグは OID の後に引き続き表示されます。

--verify

厳密な参照チェックを有効にし、正確な参照パスを要求します。--quiet が指定されていない場合、エラーコード 1 を返すだけでなく、エラーメッセージも出力します。

--exists

指定された参照が存在するかどうかを確認します。存在する場合は終了コード 0 を、存在しない場合は 2 を、参照が見つからない以外のエラーで参照の検索が失敗した場合は 1 を返します。

--abbrev[=<n>]

オブジェクト名を省略します。--hash を使用する場合、--hash --abbrev と言う必要はありません。--hash=n で十分です。

-q
--quiet

標準出力に結果を一切出力しません。--verify と組み合わせて、参照が存在するかどうかを静かに確認するために使用できます。

--exclude-existing[=<pattern>]

git show-ref を、標準入力から ^(?:<anything>\s)?<refname>(?:\^{})?$ の形式の参照を読み取り、それぞれに対して以下の操作を実行するフィルターとして機能させます。(1) 行末に ^{} があれば削除する。(2) パターンが提供され、参照名に先頭一致しない場合は無視する。(3) 参照名が整形式でない場合は警告し、スキップする。(4) 参照名がローカルリポジトリに存在する参照である場合は無視する。(5) それ以外の場合は行を出力する。

<pattern>…​

1つ以上のパターンに一致する参照を表示します。パターンは完全名の末尾から一致し、完全な部分のみが一致します。例えば、masterrefs/heads/masterrefs/remotes/origin/masterrefs/tags/jedi/master に一致しますが、refs/heads/mymasterrefs/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

すべてのタグと、それらがデリファレンスするものを一覧表示できます。

ファイル

.git/refs/*, .git/packed-refs

GIT

git[1]スイートの一部

scroll-to-top