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