GIT-LS-REMOTE(1)
๐ GIT-LS-REMOTE(1) ๐
okay bestie, welcome to git-ls-remote โ the manual page, the icon, the moment. (yes the manual name is literally GIT-LS-REMOTE(1), we're being official today ๐
)
โจ NAME โจ
git-ls-remote โ List references in a remote repository
๐ธ SYNOPSIS ๐ธ
git ls-remote [--branches] [--tags] [--refs] [--upload-pack=<exec>]
[-q | --quiet] [--exit-code] [--get-url] [--sort=<key>]
[--symref] [<repository> [<patterns>...]]
like literally that's the whole shape of it, no notes ๐ซถ
๐ฆ DESCRIPTION ๐ฆ
Displays references available in a remote repository along with the associated commit IDs.
that's it. that's the vibe. you point it at a remote, it tells you what refs live there and which commit each one is pointing at. main character energy for real ๐ฅ
๐ OPTIONS ๐
-b,--branches,-t,--tagsโ Limit to only local branches and local tags, respectively. These options are not mutually exclusive โ give both and you get references stored inrefs/headsandrefs/tagsdisplayed. Also, heads up:--headsand-hare deprecated synonyms for--branchesand-band may be removed in the future. And one more thing, because this trips people up:git ls-remote -hused without anything else on the command line gives help, consistent with other git subcommands. so yeah,-his doing double duty, she contains multitudes ๐ญ--refsโ Do not show peeled tags or pseudorefs likeHEADin the output. clean lines only, no extras โจ-q,--quietโ Do not print remote URL tostderr. shhh, she's being discreet ๐--upload-pack=<exec>โ Specify the full path ofgit-upload-packon the remote host. This allows listing references from repositories accessed via SSH and where the SSH daemon does not use thePATHconfigured by the user. very "i know exactly where the binary lives" of you ๐--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. so0= we had a nice chat,2= we had a nice chat but there was nothing to talk about ๐--get-urlโ Expand the URL of the given remote repository taking into account any"url.<base>.insteadOf"config setting (Seegit-config(1)) and exit without talking to the remote. she's just here to do the URL math and dip ๐ง--symrefโ In addition to the object pointed by it, show the underlying ref pointed by it when showing a symbolic ref. Currently,upload-packonly shows the symrefHEAD, so it will be the only one shown byls-remote. one icon, one symref, that's the situation ๐--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. Seegit-for-each-ref(1)for more sort options, but be aware keys likecommitterdatethat 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. ngl that's the trap, don't fall in it ๐-o <option>,--server-option=<option>โ Transmit the given string to the server when communicating using protocol version 2. The given string must not contain aNULorLFcharacter. 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 variableremote.<name>.serverOptionare used instead. order matters, bestie, she's not shuffling anything for you โญ<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 ofgit-fetch(1)). url or nickname, both slay ๐<patterns>...โ When unspecified, all references, after filtering done with--headsand--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 ingitglossary(7)) which is matched against the "tail" of a ref, starting either from the start of the ref (so a full name likerefs/heads/foomatches) or from a slash separator (sobarmatchesrefs/heads/barbut notrefs/heads/foobar). like yes she's picky, but she's consistent ๐
๐ 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.
so the second line is the tag going "and this is who i actually am" โ peeling, iconic behavior ๐ฆ
๐ฅ 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^{}
(notice the v\* โ you escaped it, bestie, don't let your shell eat your wildcard ๐ญ)
๐ SEE ALSO ๐
๐ GIT ๐
Part of the git(1) suite
and that's the page!! ๐โจ official sign-off vibes: this one's brought to you by Git 2.56.0, dated 2026-09-27 โ go list some refs, you absolute legend ๐ซถ๐ ๐ฅ
๐ฆ where this page comes from
- arch rolling: git 2.56.0-1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms