1git-show-ref(1) 2=============== 3 4NAME 5---- 6git-show-ref - List references in a local repository 7 8SYNOPSIS 9-------- 10[verse] 11'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference] 12 [-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags] 13 [--heads] [--] [<pattern>...] 14'git show-ref' --exclude-existing[=<pattern>] < ref-list 15 16DESCRIPTION 17----------- 18 19Displays references available in a local repository along with the associated 20commit IDs. Results can be filtered using a pattern and tags can be 21dereferenced into object IDs. Additionally, it can be used to test whether a 22particular ref exists. 23 24By default, shows the tags, heads, and remote refs. 25 26The --exclude-existing form is a filter that does the inverse, it shows the 27refs from stdin that don't exist in the local repository. 28 29Use of this utility is encouraged in favor of directly accessing files under 30the `.git` directory. 31 32OPTIONS 33------- 34 35--head:: 36 37 Show the HEAD reference, even if it would normally be filtered out. 38 39--tags:: 40--heads:: 41 42 Limit to "refs/heads" and "refs/tags", respectively. These options 43 are not mutually exclusive; when given both, references stored in 44 "refs/heads" and "refs/tags" are displayed. 45 46-d:: 47--dereference:: 48 49 Dereference tags into object IDs as well. They will be shown with "{caret}{}" 50 appended. 51 52-s:: 53--hash[=<n>]:: 54 55 Only show the SHA-1 hash, not the reference name. When combined with 56 --dereference the dereferenced tag will still be shown after the SHA-1. 57 58--verify:: 59 60 Enable stricter reference checking by requiring an exact ref path. 61 Aside from returning an error code of 1, it will also print an error 62 message if '--quiet' was not specified. 63 64--abbrev[=<n>]:: 65 66 Abbreviate the object name. When using `--hash`, you do 67 not have to say `--hash --abbrev`; `--hash=n` would do. 68 69-q:: 70--quiet:: 71 72 Do not print any results to stdout. When combined with '--verify' this 73 can be used to silently check if a reference exists. 74 75--exclude-existing[=<pattern>]:: 76 77 Make 'git show-ref' act as a filter that reads refs from stdin of the 78 form "`^(?:<anything>\s)?<refname>(?:\^{})?$`" 79 and performs the following actions on each: 80 (1) strip "{caret}{}" at the end of line if any; 81 (2) ignore if pattern is provided and does not head-match refname; 82 (3) warn if refname is not a well-formed refname and skip; 83 (4) ignore if refname is a ref that exists in the local repository; 84 (5) otherwise output the line. 85 86 87<pattern>...:: 88 89 Show references matching one or more patterns. Patterns are matched from 90 the end of the full name, and only complete parts are matched, e.g. 91 'master' matches 'refs/heads/master', 'refs/remotes/origin/master', 92 'refs/tags/jedi/master' but not 'refs/heads/mymaster' nor 93 'refs/remotes/master/jedi'. 94 95OUTPUT 96------ 97 98The output is in the format: '<SHA-1 ID>' '<space>' '<reference name>'. 99 100----------------------------------------------------------------------------- 101$ git show-ref --head --dereference 102832e76a9899f560a90ffd62ae2ce83bbeff58f54 HEAD 103832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/master 104832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/origin 1053521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c 1066ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{} 107055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4 108423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{} 109... 110----------------------------------------------------------------------------- 111 112When using --hash (and not --dereference) the output format is: '<SHA-1 ID>' 113 114----------------------------------------------------------------------------- 115$ git show-ref --heads --hash 1162e3ba0114a1f52b47df29743d6915d056be13278 117185008ae97960c8d551adcd9e23565194651b5d1 11803adf42c988195b50e1a1935ba5fcbc39b2b029b 119... 120----------------------------------------------------------------------------- 121 122EXAMPLE 123------- 124 125To show all references called "master", whether tags or heads or anything 126else, and regardless of how deep in the reference naming hierarchy they are, 127use: 128 129----------------------------------------------------------------------------- 130 git show-ref master 131----------------------------------------------------------------------------- 132 133This will show "refs/heads/master" but also "refs/remote/other-repo/master", 134if such references exists. 135 136When using the '--verify' flag, the command requires an exact path: 137 138----------------------------------------------------------------------------- 139 git show-ref --verify refs/heads/master 140----------------------------------------------------------------------------- 141 142will only match the exact branch called "master". 143 144If nothing matches, 'git show-ref' will return an error code of 1, 145and in the case of verification, it will show an error message. 146 147For scripting, you can ask it to be quiet with the "--quiet" flag, which 148allows you to do things like 149 150----------------------------------------------------------------------------- 151 git show-ref --quiet --verify -- "refs/heads/$headname" || 152 echo "$headname is not a valid branch" 153----------------------------------------------------------------------------- 154 155to check whether a particular branch exists or not (notice how we don't 156actually want to show any results, and we want to use the full refname for it 157in order to not trigger the problem with ambiguous partial matches). 158 159To show only tags, or only proper branch heads, use "--tags" and/or "--heads" 160respectively (using both means that it shows tags and heads, but not other 161random references under the refs/ subdirectory). 162 163To do automatic tag object dereferencing, use the "-d" or "--dereference" 164flag, so you can do 165 166----------------------------------------------------------------------------- 167 git show-ref --tags --dereference 168----------------------------------------------------------------------------- 169 170to get a listing of all tags together with what they dereference. 171 172FILES 173----- 174`.git/refs/*`, `.git/packed-refs` 175 176SEE ALSO 177-------- 178linkgit:git-ls-remote[1], 179linkgit:git-update-ref[1], 180linkgit:gitrepository-layout[5] 181 182GIT 183--- 184Part of the linkgit:git[1] suite