SYNOPSIS

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

DESCRIPTION

「/bin/ls -a」が現在の作業ディレクトリで行うことのように、特定のツリーオブジェクトの内容を一覧表示します。 ただし以下の点に注意してください:

  • 動作は「/bin/ls」の動作とは少し異なり、「<path>」は一致するパターンのリストのみを示します。 したがって、( -r なしで)ディレクトリ名を指定すると動作が異なり、引数の順序は重要ではありません。

  • <path> が現在の作業ディレクトリを基準にして取得されるという点で、動作は「/bin/ls」の動作と似ています。例えば、あなたの現在の作業ディレクトリが「sub」で、その下にサブディレクトリ「dir」がある場合は、「git ls-tree -r HEAD dir」を実行すると、「dir」ツリーの内容を一覧表示できます(つまり、「HEAD」の「sub/dir」) 。あなたが、ルートレベル以外のツリーを直接指定したいとします(たとえば git ls-tree -r HEAD:sub dir と指定します)。しかし、この場合は結果として HEAD コミットで sub/sub/dir を要求したことになります(そしてそんなディレクトリはないので何も表示されない)。ただし、 --full-tree プションを渡すと、現在の作業ディレクトリを無視できます(つまり、 git ls-tree --fulltree -r HEAD:sub dir とすれば意図したとおりに動く)

OPTIONS

<tree-ish>

ツリーっぽい何か(tree-ish)のID

-d

名前付きツリーエントリ自体のみを表示し、その子供たちは表示しません。

-r

サブツリーに再帰的に入っていきます

-t

サブツリーに再帰的入っていく場合でも、ツリーエントリを表示します。 -r が渡されなかった場合は効果がありません。 -d-t の意味を含んでいます。

-l
--long

ブロブ(ファイル)エントリのオブジェクトサイズを表示します。

-z

\0 (NULバイト)出力での行終了であり、ファイル名をクォートしません。 詳細については、以下の OUTPUT FORMAT を参照してください。

--name-only
--name-status

(「long」出力ではなく)ファイル名のみを1行に1つずつリストします。

--abbrev[=<n>]

40バイトの16進オブジェクト行全体を表示する代わりに、オブジェクトを一意に参照できる、少なくとも <n> 以上の長さの最短のプレフィックスを表示します。デフォルト以外の桁数は --abbrev=<n> で指定できます。(訳注:手元ではデフォルトは10桁で表示された。 --abbrev=1 とすると5桁(一部6桁)表示となった)

--full-name

現在の作業ディレクトリに関連するパス名を表示する代わりに、フルパス名を表示します。

--full-tree

現在の作業ディレクトリを無視して、ルートレベルを起点として一覧表示します。 --full-name の意味を含んでいます。

[<path>…]

パスが指定されたら、それらを表示します(これは実際には生のパス名ではなく、一致するパターンのリストであることに注意してください)。 それ以外の場合は、ツリーのルートレベルを唯一のパス引数として暗黙的に使用します。

Output Format

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

この出力形式は、「git update-index」の「--index-info—stdin」が期待するものと互換性があります。

-l オプションを使用すると、形式が以下のように変わります

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

<object> で識別されるオブジェクトサイズはバイト単位で指定され、最小幅7文字で右寄せされます。オブジェクトサイズは、ブロブ(ファイル)エントリに対してのみ指定されます。他のエントリの場合、サイズの代わりに - 文字が使用されます。

-z オプションを指定しない場合、構成変数 core.quotePath で説明されているように、「異常な」文字を含むパス名が引用符で囲まれます(git-config(1) を参照)。 -z を使用すると、ファイル名がそのまま出力され、行はNULバイトで終了します。

GIT

Part of the git(1) suite