git-ls-tree - List the contents of a tree object
git ls-tree [-d] [-r] [-t] [-l] [-z]
[--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev=[<n>]]
Lists the contents of a given tree object, like what "/bin/ls -a" does
in the current working directory. Note that:
o the behaviour is slightly different from that of "/bin/ls" in that
the paths denote 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.
o the behaviour is similar to that of "/bin/ls" in that the paths 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
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.
Show object size of blob (file) entries.
\0 line termination on output.
List only filenames (instead of the "long" output), one per line.
Instead of showing the full 40-byte hexadecimal object lines, show
only a partial prefix. 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
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
<mode> SP <type> SP <object> TAB <file>
Unless the -z option is used, TAB, LF, and backslash characters in
pathnames are represented as \t, \n, and \\, respectively. This output
format is compatible with what --index-info --stdin of git update-index
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.
Written by Petr Baudis <firstname.lastname@example.org> Completely rewritten from
scratch by Junio C Hamano <email@example.com>, another major rewrite
by Linus Torvalds <firstname.lastname@example.org>
Documentation by David Greaves, Junio C Hamano and the git-list
Part of the git(1) suite