git-ls-tree(1) — Linux manual page


GIT-LS-TREE(1)                 Git Manual                 GIT-LS-TREE(1)

NAME         top

       git-ls-tree - List the contents of a tree object

SYNOPSIS         top

       git ls-tree [-d] [-r] [-t] [-l] [-z]
                   [--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev[=<n>]]
                   <tree-ish> [<path>...]

DESCRIPTION         top

       Lists the contents of a given tree object, like what "/bin/ls -a"
       does in the current working directory. Note that:

       •   the behaviour is slightly different from that of "/bin/ls" in
           that the <path> denotes just a list of patterns to match,
           e.g. so specifying directory name (without -r) will behave
           differently, and order of the arguments does not matter.

       •   the behaviour is similar to that of "/bin/ls" in that the
           <path> is taken as relative to the current working directory.
           E.g. when you are in a directory sub that has a directory
           dir, you can run git ls-tree -r HEAD dir to list the contents
           of the tree (that is sub/dir in HEAD). You don’t want to give
           a tree that is not at the root level (e.g.  git ls-tree -r
           HEAD:sub dir) in this case, as that would result in asking
           for sub/sub/dir in the HEAD commit. However, the current
           working directory can be ignored by passing --full-tree

OPTIONS         top

           Id of a tree-ish.

           Show only the named tree entry itself, not its children.

           Recurse into sub-trees.

           Show tree entries even when going to recurse them. Has no
           effect if -r was not passed.  -d implies -t.

       -l, --long
           Show object size of blob (file) entries.

           \0 line termination on output and do not quote filenames. See
           OUTPUT FORMAT below for more information.

       --name-only, --name-status
           List only filenames (instead of the "long" output), one per

           Instead of showing the full 40-byte hexadecimal object lines,
           show the shortest prefix that is at least <n> hexdigits long
           that uniquely refers the object. Non default number of digits
           can be specified with --abbrev=<n>.

           Instead of showing the path names relative to the current
           working directory, show the full path names.

           Do not limit the listing to the current working directory.
           Implies --full-name.

           When paths are given, show them (note that this isn’t really
           raw pathnames, but rather a list of patterns to match).
           Otherwise implicitly uses the root level of the tree as the
           sole path argument.

OUTPUT FORMAT         top

           <mode> SP <type> SP <object> TAB <file>

       This output format is compatible with what --index-info --stdin
       of git update-index expects.

       When the -l option is used, format changes to

           <mode> SP <type> SP <object> SP <object size> TAB <file>

       Object size identified by <object> 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.

GIT         top

       Part of the git(1) suite

COLOPHON         top

       This page is part of the git (Git distributed version control
       system) project.  Information about the project can be found at
       ⟨⟩.  If you have a bug report for this manual
       page, see ⟨⟩.  This page was obtained
       from the project's upstream Git repository
       ⟨⟩ on 2021-08-27.  (At that time,
       the date of the most recent commit that was found in the
       repository was 2021-08-24.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

Git         08/27/2021                 GIT-LS-TREE(1)

Pages that refer to this page: git(1)gitweb.conf(5)