6 git-ls-tree - List the contents of a tree object
 
  12 'git ls-tree' [-d] [-r] [-t] [-l] [-z]
 
  13             [--name-only] [--name-status] [--full-name] [--full-tree] [--abbrev[=<n>]]
 
  14             <tree-ish> [<path>...]
 
  18 Lists the contents of a given tree object, like what "/bin/ls -a" does
 
  19 in the current working directory.  Note that:
 
  21  - the behaviour is slightly different from that of "/bin/ls" in that the
 
  22    '<path>' denotes just a list of patterns to match, e.g. so specifying
 
  23    directory name (without '-r') will behave differently, and order of the
 
  24    arguments does not matter.
 
  26  - the behaviour is similar to that of "/bin/ls" in that the '<path>' is
 
  27    taken as relative to the current working directory.  E.g. when you are
 
  28    in a directory 'sub' that has a directory 'dir', you can run 'git
 
  29    ls-tree -r HEAD dir' to list the contents of the tree (that is
 
  30    'sub/dir' in 'HEAD').  You don't want to give a tree that is not at the
 
  31    root level (e.g. `git ls-tree -r HEAD:sub dir`) in this case, as that
 
  32    would result in asking for 'sub/sub/dir' in the 'HEAD' commit.
 
  33    However, the current working directory can be ignored by passing
 
  42         Show only the named tree entry itself, not its children.
 
  45         Recurse into sub-trees.
 
  48         Show tree entries even when going to recurse them. Has no effect
 
  49         if '-r' was not passed. '-d' implies '-t'.
 
  53         Show object size of blob (file) entries.
 
  56         \0 line termination on output.
 
  60         List only filenames (instead of the "long" output), one per line.
 
  63         Instead of showing the full 40-byte hexadecimal object
 
  64         lines, show only a partial prefix.
 
  65         Non default number of digits can be specified with --abbrev=<n>.
 
  68         Instead of showing the path names relative to the current working
 
  69         directory, show the full path names.
 
  72         Do not limit the listing to the current working directory.
 
  76         When paths are given, show them (note that this isn't really raw
 
  77         pathnames, but rather a list of patterns to match).  Otherwise
 
  78         implicitly uses the root level of the tree as the sole path argument.
 
  83         <mode> SP <type> SP <object> TAB <file>
 
  85 Unless the `-z` option is used, TAB, LF, and backslash characters
 
  86 in pathnames are represented as `\t`, `\n`, and `\\`, respectively.
 
  87 This output format is compatible with what `--index-info --stdin` of
 
  88 'git update-index' expects.
 
  90 When the `-l` option is used, format changes to
 
  92         <mode> SP <type> SP <object> SP <object size> TAB <file>
 
  94 Object size identified by <object> is given in bytes, and right-justified
 
  95 with minimum width of 7 characters.  Object size is given only for blobs
 
  96 (file) entries; for other entries `-` character is used in place of size.
 
 100 Part of the linkgit:git[1] suite