Git
日本語 ▾ トピック ▾ 最新バージョン ▾ 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

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

--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)パターンが指定されていて、refnameと先頭一致しない場合は無視する。(3)refnameが正しい形式のrefnameでない場合は警告を出力してスキップする。(4)refnameがローカルリポジトリに存在する参照である場合は無視する。(5)それ以外の場合は行を出力する。

<pattern>…​

1つ以上のパターンに一致する参照を表示します。パターンはフルネームの末尾から照合され、完全な部分のみが照合されます。たとえば、 *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

すべてのタグと、それらが逆参照するものをリストで取得するため。

ファイル

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

GIT

git[1] スイートの一部

scroll-to-top