日本語 ▾ トピック ▾ 最新バージョン ▾ 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) パターンが提供されており、参照名が先頭で一致しない場合は無視します; (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