git-show-ref(1)
===============

NAME
----
git-show-ref - List references in a local repository

SYNOPSIS
--------
[verse]
'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]
	     [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]
	     [--heads] [--] [<pattern>...]
'git show-ref' --exclude-existing[=<pattern>] < ref-list

DESCRIPTION
-----------

Displays references available in a local repository along with the associated
commit IDs. Results can be filtered using a pattern and tags can be
dereferenced into object IDs. Additionally, it can be used to test whether a
particular ref exists.

By default, shows the tags, heads, and remote refs.

The --exclude-existing form is a filter that does the inverse, it shows the
refs from stdin that don't exist in the local repository.

Use of this utility is encouraged in favor of directly accessing files under
the `.git` directory.

OPTIONS
-------

--head::

	Show the HEAD reference, even if it would normally be filtered out.

--tags::
--heads::

	Limit to "refs/heads" and "refs/tags", respectively.  These options
	are not mutually exclusive; when given both, references stored in
	"refs/heads" and "refs/tags" are displayed.

-d::
--dereference::

	Dereference tags into object IDs as well. They will be shown with "{caret}{}"
	appended.

-s::
--hash[=<n>]::

	Only show the SHA-1 hash, not the reference name. When combined with
	--dereference the dereferenced tag will still be shown after the SHA-1.

--verify::

	Enable stricter reference checking by requiring an exact ref path.
	Aside from returning an error code of 1, it will also print an error
	message if '--quiet' was not specified.

--abbrev[=<n>]::

	Abbreviate the object name.  When using `--hash`, you do
	not have to say `--hash --abbrev`; `--hash=n` would do.

-q::
--quiet::

	Do not print any results to stdout. When combined with '--verify' this
	can be used to silently check if a reference exists.

--exclude-existing[=<pattern>]::

	Make 'git show-ref' act as a filter that reads refs from stdin of the
	form "`^(?:<anything>\s)?<refname>(?:\^{})?$`"
	and performs the following actions on each:
	(1) strip "{caret}{}" at the end of line if any;
	(2) ignore if pattern is provided and does not head-match refname;
	(3) warn if refname is not a well-formed refname and skip;
	(4) ignore if refname is a ref that exists in the local repository;
	(5) otherwise output the line.


<pattern>...::

	Show references matching one or more patterns. Patterns are matched from
	the end of the full name, and only complete parts are matched, e.g.
	'master' matches 'refs/heads/master', 'refs/remotes/origin/master',
	'refs/tags/jedi/master' but not 'refs/heads/mymaster' or
	'refs/remotes/master/jedi'.

OUTPUT
------

The output is in the format: '<SHA-1 ID>' '<space>' '<reference name>'.

-----------------------------------------------------------------------------
$ 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^{}
...
-----------------------------------------------------------------------------

When using --hash (and not --dereference) the output format is: '<SHA-1 ID>'

-----------------------------------------------------------------------------
$ git show-ref --heads --hash
2e3ba0114a1f52b47df29743d6915d056be13278
185008ae97960c8d551adcd9e23565194651b5d1
03adf42c988195b50e1a1935ba5fcbc39b2b029b
...
-----------------------------------------------------------------------------

EXAMPLE
-------

To show all references called "master", whether tags or heads or anything
else, and regardless of how deep in the reference naming hierarchy they are,
use:

-----------------------------------------------------------------------------
	git show-ref master
-----------------------------------------------------------------------------

This will show "refs/heads/master" but also "refs/remote/other-repo/master",
if such references exists.

When using the '--verify' flag, the command requires an exact path:

-----------------------------------------------------------------------------
	git show-ref --verify refs/heads/master
-----------------------------------------------------------------------------

will only match the exact branch called "master".

If nothing matches, 'git show-ref' will return an error code of 1,
and in the case of verification, it will show an error message.

For scripting, you can ask it to be quiet with the "--quiet" flag, which
allows you to do things like

-----------------------------------------------------------------------------
	git show-ref --quiet --verify -- "refs/heads/$headname" ||
		echo "$headname is not a valid branch"
-----------------------------------------------------------------------------

to check whether a particular branch exists or not (notice how we don't
actually want to show any results, and we want to use the full refname for it
in order to not trigger the problem with ambiguous partial matches).

To show only tags, or only proper branch heads, use "--tags" and/or "--heads"
respectively (using both means that it shows tags and heads, but not other
random references under the refs/ subdirectory).

To do automatic tag object dereferencing, use the "-d" or "--dereference"
flag, so you can do

-----------------------------------------------------------------------------
	git show-ref --tags --dereference
-----------------------------------------------------------------------------

to get a listing of all tags together with what they dereference.

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

SEE ALSO
--------
linkgit:git-for-each-ref[1],
linkgit:git-ls-remote[1],
linkgit:git-update-ref[1],
linkgit:gitrepository-layout[5]

GIT
---
Part of the linkgit:git[1] suite
