git-ls-remote(1)
================

NAME
----
git-ls-remote - List references in a remote repository


SYNOPSIS
--------
[verse]
'git ls-remote' [--heads] [--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
-------
-h::
--heads::
-t::
--tags::
	Limit to only 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.  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.

<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`).

EXAMPLES
--------

----
$ git ls-remote --tags .
d6602ec5194c87b0fc87103ca4d67251c76f233a	refs/tags/v0.99
f25a265a342aed6041ab0cc484224d9ca54b6f41	refs/tags/v0.99.1
7ceca275d047c90c0c7d5afb13ab97efdf51bd6e	refs/tags/v0.99.3
c5db5456ae3b0873fc659c19fafdde22313cc441	refs/tags/v0.99.2
0918385dbd9656cab0d1d81ba7453d49bbc16250	refs/tags/junio-gpg-pub

$ git ls-remote http://www.kernel.org/pub/scm/git/git.git master seen rc
5fe978a5381f1fbad26a80e682ddd2a401966740	refs/heads/master
c781a84b5204fb294c9ccc79f8b3baceeb32c061	refs/heads/seen

$ git remote add korg http://www.kernel.org/pub/scm/git/git.git
$ git ls-remote --tags korg v\*
d6602ec5194c87b0fc87103ca4d67251c76f233a	refs/tags/v0.99
f25a265a342aed6041ab0cc484224d9ca54b6f41	refs/tags/v0.99.1
c5db5456ae3b0873fc659c19fafdde22313cc441	refs/tags/v0.99.2
7ceca275d047c90c0c7d5afb13ab97efdf51bd6e	refs/tags/v0.99.3
----

SEE ALSO
--------
linkgit:git-check-ref-format[1].

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