Man page - git-ls-tree(1)
Packages contas this manual
- git-fsmonitor--daemon(1)
- git(1)
- gitprotocol-v2(5)
- gitweb(1)
- git-repack(1)
- git-reset(1)
- git-fetch-pack(1)
- git-daemon(1)
- git-subtree(1)
- git-fmt-merge-msg(1)
- git-diff-index(1)
- git-pack-redundant(1)
- git-ls-remote(1)
- git-mktree(1)
- git-count-objects(1)
- gitformat-commit-graph(5)
- git-worktree(1)
- git-verify-commit(1)
- gitmailmap(5)
- gitformat-bundle(5)
- gitcli(7)
- git-mailinfo(1)
- git-tag(1)
- git-remote(1)
- git-symbolic-ref(1)
- scalar(1)
- git-patch-id(1)
- git-interpret-trailers(1)
- git-init-db(1)
- gitremote-helpers(7)
- git-maintenance(1)
- git-mergetool(1)
- git-stage(1)
- git-diff-files(1)
- git-shortlog(1)
- git-submodule(1)
- git-cat-file(1)
- git-am(1)
- git-check-mailmap(1)
- git-add(1)
- git-write-tree(1)
- git-pack-objects(1)
- git-version(1)
- git-receive-pack(1)
- git-verify-tag(1)
- git-reflog(1)
- gitcredentials(7)
- gitrepository-layout(5)
- git-send-pack(1)
- gitignore(5)
- git-merge-file(1)
- git-http-push(1)
- git-credential-cache--daemon(1)
- git-merge-index(1)
- git-get-tar-commit-id(1)
- git-merge-one-file(1)
- git-remote-ext(1)
- git-blame(1)
- git-fetch(1)
- git-prune(1)
- git-bisect(1)
- git-replace(1)
- gitformat-chunk(5)
- gitglossary(7)
- git-show(1)
- git-rm(1)
- git-commit(1)
- gitcore-tutorial(7)
- git-merge(1)
- gitformat-pack(5)
- git-fsck(1)
- gitworkflows(7)
- git-name-rev(1)
- git-diagnose(1)
- git-log(1)
- git-whatchanged(1)
- git-check-attr(1)
- git-refs(1)
- git-gc(1)
- git-unpack-file(1)
- git-mailsplit(1)
- git-switch(1)
- git-sparse-checkout(1)
- git-multi-pack-index(1)
- gitprotocol-pack(5)
- git-init(1)
- git-rev-parse(1)
- git-merge-tree(1)
- gittutorial(7)
- git-request-pull(1)
- git-check-ref-format(1)
- git-mv(1)
- git-rev-list(1)
- git-bugreport(1)
- git-mktag(1)
- git-sh-i18n--envsubst(1)
- git-range-diff(1)
- git-notes(1)
- git-checkout-index(1)
- git-show-branch(1)
- gitprotocol-http(5)
- git-sh-setup(1)
- gitweb.conf(5)
- gitnamespaces(7)
- git-grep(1)
- gittutorial-2(7)
- git-fsck-objects(1)
- giteveryday(7)
- git-config(1)
- git-prune-packed(1)
- git-help(1)
- git-apply(1)
- git-fast-import(1)
- gitprotocol-capabilities(5)
- git-mergetool--lib(1)
- git-diff-tree(1)
- git-instaweb(1)
- git-difftool(1)
- git-pack-refs(1)
- git-restore(1)
- gitsubmodules(7)
- git-annotate(1)
- gitattributes(5)
- git-credential-store(1)
- git-ls-files(1)
- git-var(1)
- git-remote-fd(1)
- gitformat-index(5)
- gitrevisions(7)
- git-unpack-objects(1)
- git-diff(1)
- git-commit-tree(1)
- git-for-each-repo(1)
- git-web--browse(1)
- git-update-index(1)
- gitpacking(7)
- git-imap-send(1)
- git-show-ref(1)
- git-replay(1)
- git-for-each-ref(1)
- git-http-fetch(1)
- gitprotocol-common(5)
- git-cherry(1)
- git-merge-base(1)
- git-fast-export(1)
- git-column(1)
- git-upload-pack(1)
- gitfaq(7)
- git-stash(1)
- gitmodules(5)
- git-push(1)
- git-cherry-pick(1)
- gitformat-signature(5)
- git-verify-pack(1)
- githooks(5)
- git-hook(1)
- git-pull(1)
- git-http-backend(1)
- git-filter-branch(1)
- git-stripspace(1)
- git-rebase(1)
- git-revert(1)
- git-show-index(1)
- git-branch(1)
- git-quiltimport(1)
- gitdiffcore(7)
- gitcvs-migration(7)
- git-checkout(1)
- git-upload-archive(1)
- git-check-ignore(1)
- git-shell(1)
- git-update-server-info(1)
- git-bundle(1)
- git-hash-object(1)
- git-clone(1)
- git-commit-graph(1)
- git-update-ref(1)
- git-status(1)
- git-describe(1)
- git-sh-i18n(1)
- git-archive(1)
- git-clean(1)
- git-read-tree(1)
- git-rerere(1)
- git-index-pack(1)
- git-credential-cache(1)
- git-credential(1)
- git-format-patch(1)
- git-ls-tree(1)
apt-get install git-man
Manual
| GIT-LS-TREE(1) | Git Manual | GIT-LS-TREE(1) |
NAME
git-ls-tree - List the contents of a tree object
SYNOPSIS
git ls-tree [-d] [-r] [-t] [-l] [-z]
[--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>]
<tree-ish> [<path>...]
DESCRIPTION
Lists the contents of a given tree object, like what "/bin/ls -a" does in the current working directory. Note that:
OPTIONS
<tree-ish>
-d
-r
-t
-l, --long
-z
--name-only, --name-status
--object-only
--abbrev[=<n>]
--full-name
--full-tree
--format=<format>
[<path>...]
OUTPUT FORMAT
The output format of ls-tree is determined by either the --format option, or other format-altering options such as --name-only etc. (see --format above).
The use of certain --format directives is equivalent to using those options, but invoking the full formatting machinery can be slower than using an appropriate formatting option.
In cases where the --format would exactly map to an existing option ls-tree will use the appropriate faster path. Thus the default format is equivalent to:
%(objectmode) %(objecttype) %(objectname)%x09%(path)
This output format is compatible with what --index-info --stdin of git update-index expects.
When the -l option is used, format changes to
%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)
Object size identified by <objectname> is given in bytes, and right-justified with minimum width of 7 characters. Object size is given only for blobs (file) entries; for other entries - character is used in place of size.
Without the -z option, pathnames with "unusual" characters are quoted as explained for the configuration variable core.quotePath (see git-config(1)). Using -z the filename is output verbatim and the line is terminated by a NUL byte.
Customized format:
It is possible to print in a custom format by using the --format option, which is able to interpolate different fields using a %(fieldname) notation. For example, if you only care about the "objectname" and "path" fields, you can execute with a specific "--format" like
git ls-tree --format='%(objectname) %(path)' <tree-ish>
FIELD NAMES
Various values from structured fields can be used to interpolate into the resulting output. For each outputting line, the following names can be used:
objectmode
objecttype
objectname
objectsize[:padded]
path
GIT
Part of the git(1) suite
| 07/30/2025 | Git 2.47.3 |