The eleventh batch
[git/gitster.git] / Documentation / git-ls-remote.txt
blobd71c4ab3e290c512d599a2817e8ba3b8ca124f73
1 git-ls-remote(1)
2 ================
4 NAME
5 ----
6 git-ls-remote - List references in a remote repository
9 SYNOPSIS
10 --------
11 [verse]
12 'git ls-remote' [--branches] [--tags] [--refs] [--upload-pack=<exec>]
13               [-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]
14               [--symref] [<repository> [<patterns>...]]
16 DESCRIPTION
17 -----------
18 Displays references available in a remote repository along with the associated
19 commit IDs.
22 OPTIONS
23 -------
24 -b::
25 --branches::
26 -t::
27 --tags::
28         Limit to only local branches and local tags, respectively.
29         These options are _not_ mutually exclusive; when given
30         both, references stored in refs/heads and refs/tags are
31         displayed.  Note that `--heads` and `-h` are deprecated
32         synonyms for `--branches` and `-b` and may be removed in
33         the future.  Also note that `git ls-remote -h` used without
34         anything else on the command line gives help, consistent
35         with other git subcommands.
37 --refs::
38         Do not show peeled tags or pseudorefs like `HEAD` in the output.
40 -q::
41 --quiet::
42         Do not print remote URL to stderr.
44 --upload-pack=<exec>::
45         Specify the full path of 'git-upload-pack' on the remote
46         host. This allows listing references from repositories accessed via
47         SSH and where the SSH daemon does not use the PATH configured by the
48         user.
50 --exit-code::
51         Exit with status "2" when no matching refs are found in the remote
52         repository. Usually the command exits with status "0" to indicate
53         it successfully talked with the remote repository, whether it
54         found any matching refs.
56 --get-url::
57         Expand the URL of the given remote repository taking into account any
58         "url.<base>.insteadOf" config setting (See linkgit:git-config[1]) and
59         exit without talking to the remote.
61 --symref::
62         In addition to the object pointed by it, show the underlying
63         ref pointed by it when showing a symbolic ref.  Currently,
64         upload-pack only shows the symref HEAD, so it will be the only
65         one shown by ls-remote.
67 --sort=<key>::
68         Sort based on the key given. Prefix `-` to sort in descending order
69         of the value. Supports "version:refname" or "v:refname" (tag names
70         are treated as versions). The "version:refname" sort order can also
71         be affected by the "versionsort.suffix" configuration variable.
72         See linkgit:git-for-each-ref[1] for more sort options, but be aware
73         keys like `committerdate` that require access to the objects
74         themselves will not work for refs whose objects have not yet been
75         fetched from the remote, and will give a `missing object` error.
77 -o <option>::
78 --server-option=<option>::
79         Transmit the given string to the server when communicating using
80         protocol version 2.  The given string must not contain a NUL or LF
81         character.
82         When multiple `--server-option=<option>` are given, they are all
83         sent to the other side in the order listed on the command line.
84         When no `--server-option=<option>` is given from the command line,
85         the values of configuration variable `remote.<name>.serverOption`
86         are used instead.
88 <repository>::
89         The "remote" repository to query.  This parameter can be
90         either a URL or the name of a remote (see the GIT URLS and
91         REMOTES sections of linkgit:git-fetch[1]).
93 <patterns>...::
94         When unspecified, all references, after filtering done
95         with --heads and --tags, are shown.  When <patterns>... are
96         specified, only references matching one or more of the given
97         patterns are displayed. Each pattern is interpreted as a glob
98         (see `glob` in linkgit:gitglossary[7]) which is matched against
99         the "tail" of a ref, starting either from the start of the ref
100         (so a full name like `refs/heads/foo` matches) or from a slash
101         separator (so `bar` matches `refs/heads/bar` but not
102         `refs/heads/foobar`).
104 OUTPUT
105 ------
107 The output is in the format:
109 ------------
110 <oid> TAB <ref> LF
111 ------------
113 When showing an annotated tag, unless `--refs` is given, two such
114 lines are shown: one with the refname for the tag itself as `<ref>`,
115 and another with `<ref>` followed by `^{}`. The `<oid>` on the latter
116 line shows the name of the object the tag points at.
118 EXAMPLES
119 --------
121 * List all references (including symbolics and pseudorefs), peeling
122   tags:
124 ----
125 $ git ls-remote
126 27d43aaaf50ef0ae014b88bba294f93658016a2e        HEAD
127 950264636c68591989456e3ba0a5442f93152c1a        refs/heads/main
128 d9ab777d41f92a8c1684c91cfb02053d7dd1046b        refs/heads/next
129 d4ca2e3147b409459955613c152220f4db848ee1        refs/tags/v2.40.0
130 73876f4861cd3d187a4682290ab75c9dccadbc56        refs/tags/v2.40.0^{}
131 ----
133 * List all references matching given patterns:
135 ----
136 $ git ls-remote http://www.kernel.org/pub/scm/git/git.git master seen rc
137 5fe978a5381f1fbad26a80e682ddd2a401966740        refs/heads/master
138 c781a84b5204fb294c9ccc79f8b3baceeb32c061        refs/heads/seen
139 ----
141 * List only tags matching a given wildcard pattern:
143 ----
144 $ git ls-remote --tags http://www.kernel.org/pub/scm/git/git.git v\*
145 485a869c64a68cc5795dd99689797c5900f4716d        refs/tags/v2.39.2
146 cbf04937d5b9fcf0a76c28f69e6294e9e3ecd7e6        refs/tags/v2.39.2^{}
147 d4ca2e3147b409459955613c152220f4db848ee1        refs/tags/v2.40.0
148 73876f4861cd3d187a4682290ab75c9dccadbc56        refs/tags/v2.40.0^{}
149 ----
151 SEE ALSO
152 --------
153 linkgit:git-check-ref-format[1].
157 Part of the linkgit:git[1] suite