mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
094f78a16a
Utilize the `server_options` from the corresponding remote during the handshake in `transport.c` when Git protocol v2 is detected. This helps initialize the `server_options` in `transport.h:transport` if no server options are set for the transport (typically via `--server-option` or `-o`). While another potential place to incorporate server options from the remote is in `transport.c:transport_get`, setting server options for a transport using a protocol other than v2 could lead to unexpected errors (see `transport.c:die_if_server_options`). Relevant tests and documentation have been updated accordingly. Signed-off-by: Xing Xin <xingxin.xx@bytedance.com> Reviewed-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
158 lines
5.0 KiB
Plaintext
158 lines
5.0 KiB
Plaintext
git-ls-remote(1)
|
|
================
|
|
|
|
NAME
|
|
----
|
|
git-ls-remote - List references in a remote repository
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git ls-remote' [--branches] [--tags] [--refs] [--upload-pack=<exec>]
|
|
[-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]
|
|
[--symref] [<repository> [<patterns>...]]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
Displays references available in a remote repository along with the associated
|
|
commit IDs.
|
|
|
|
|
|
OPTIONS
|
|
-------
|
|
-b::
|
|
--branches::
|
|
-t::
|
|
--tags::
|
|
Limit to only local branches and local tags, respectively.
|
|
These options are _not_ mutually exclusive; when given
|
|
both, references stored in refs/heads and refs/tags are
|
|
displayed. Note that `--heads` and `-h` are deprecated
|
|
synonyms for `--branches` and `-b` and may be removed in
|
|
the future. Also note that `git ls-remote -h` used without
|
|
anything else on the command line gives help, consistent
|
|
with other git subcommands.
|
|
|
|
--refs::
|
|
Do not show peeled tags or pseudorefs like `HEAD` in the output.
|
|
|
|
-q::
|
|
--quiet::
|
|
Do not print remote URL to stderr.
|
|
|
|
--upload-pack=<exec>::
|
|
Specify the full path of 'git-upload-pack' on the remote
|
|
host. This allows listing references from repositories accessed via
|
|
SSH and where the SSH daemon does not use the PATH configured by the
|
|
user.
|
|
|
|
--exit-code::
|
|
Exit with status "2" when no matching refs are found in the remote
|
|
repository. Usually the command exits with status "0" to indicate
|
|
it successfully talked with the remote repository, whether it
|
|
found any matching refs.
|
|
|
|
--get-url::
|
|
Expand the URL of the given remote repository taking into account any
|
|
"url.<base>.insteadOf" config setting (See linkgit:git-config[1]) and
|
|
exit without talking to the remote.
|
|
|
|
--symref::
|
|
In addition to the object pointed by it, show the underlying
|
|
ref pointed by it when showing a symbolic ref. Currently,
|
|
upload-pack only shows the symref HEAD, so it will be the only
|
|
one shown by ls-remote.
|
|
|
|
--sort=<key>::
|
|
Sort based on the key given. Prefix `-` to sort in descending order
|
|
of the value. Supports "version:refname" or "v:refname" (tag names
|
|
are treated as versions). The "version:refname" sort order can also
|
|
be affected by the "versionsort.suffix" configuration variable.
|
|
See linkgit:git-for-each-ref[1] for more sort options, but be aware
|
|
keys like `committerdate` that require access to the objects
|
|
themselves will not work for refs whose objects have not yet been
|
|
fetched from the remote, and will give a `missing object` error.
|
|
|
|
-o <option>::
|
|
--server-option=<option>::
|
|
Transmit the given string to the server when communicating using
|
|
protocol version 2. The given string must not contain a NUL or LF
|
|
character.
|
|
When multiple `--server-option=<option>` are given, they are all
|
|
sent to the other side in the order listed on the command line.
|
|
When no `--server-option=<option>` is given from the command line,
|
|
the values of configuration variable `remote.<name>.serverOption`
|
|
are used instead.
|
|
|
|
<repository>::
|
|
The "remote" repository to query. This parameter can be
|
|
either a URL or the name of a remote (see the GIT URLS and
|
|
REMOTES sections of linkgit:git-fetch[1]).
|
|
|
|
<patterns>...::
|
|
When unspecified, all references, after filtering done
|
|
with --heads and --tags, are shown. When <patterns>... are
|
|
specified, only references matching one or more of the given
|
|
patterns are displayed. Each pattern is interpreted as a glob
|
|
(see `glob` in linkgit:gitglossary[7]) which is matched against
|
|
the "tail" of a ref, starting either from the start of the ref
|
|
(so a full name like `refs/heads/foo` matches) or from a slash
|
|
separator (so `bar` matches `refs/heads/bar` but not
|
|
`refs/heads/foobar`).
|
|
|
|
OUTPUT
|
|
------
|
|
|
|
The output is in the format:
|
|
|
|
------------
|
|
<oid> TAB <ref> LF
|
|
------------
|
|
|
|
When showing an annotated tag, unless `--refs` is given, two such
|
|
lines are shown: one with the refname for the tag itself as `<ref>`,
|
|
and another with `<ref>` followed by `^{}`. The `<oid>` on the latter
|
|
line shows the name of the object the tag points at.
|
|
|
|
EXAMPLES
|
|
--------
|
|
|
|
* List all references (including symbolics and pseudorefs), peeling
|
|
tags:
|
|
+
|
|
----
|
|
$ git ls-remote
|
|
27d43aaaf50ef0ae014b88bba294f93658016a2e HEAD
|
|
950264636c68591989456e3ba0a5442f93152c1a refs/heads/main
|
|
d9ab777d41f92a8c1684c91cfb02053d7dd1046b refs/heads/next
|
|
d4ca2e3147b409459955613c152220f4db848ee1 refs/tags/v2.40.0
|
|
73876f4861cd3d187a4682290ab75c9dccadbc56 refs/tags/v2.40.0^{}
|
|
----
|
|
|
|
* List all references matching given patterns:
|
|
+
|
|
----
|
|
$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master seen rc
|
|
5fe978a5381f1fbad26a80e682ddd2a401966740 refs/heads/master
|
|
c781a84b5204fb294c9ccc79f8b3baceeb32c061 refs/heads/seen
|
|
----
|
|
|
|
* List only tags matching a given wildcard pattern:
|
|
+
|
|
----
|
|
$ git ls-remote --tags http://www.kernel.org/pub/scm/git/git.git v\*
|
|
485a869c64a68cc5795dd99689797c5900f4716d refs/tags/v2.39.2
|
|
cbf04937d5b9fcf0a76c28f69e6294e9e3ecd7e6 refs/tags/v2.39.2^{}
|
|
d4ca2e3147b409459955613c152220f4db848ee1 refs/tags/v2.40.0
|
|
73876f4861cd3d187a4682290ab75c9dccadbc56 refs/tags/v2.40.0^{}
|
|
----
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkgit:git-check-ref-format[1].
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|