設定と構成
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.42.1 → 2.47.0 変更なし
-
2.42.0
08/21/23
- 2.36.1 → 2.41.2 変更なし
-
2.36.0
04/18/22
- 2.30.1 → 2.35.8 変更なし
-
2.30.0
12/27/20
- 2.22.1 → 2.29.3 変更なし
-
2.22.0
06/07/19
- 2.14.6 → 2.21.4 変更なし
-
2.13.7
05/22/18
- 2.10.5 → 2.12.5 変更なし
-
2.9.5
07/30/17
- 2.1.4 → 2.8.6 変更なし
-
2.0.5
12/17/14
概要
git ls-tree [-d] [-r] [-t] [-l] [-z] [--name-only] [--name-status] [--object-only] [--full-name] [--full-tree] [--abbrev[=<n>]] [--format=<format>] <tree-ish> [<path>…]
説明
現在の作業ディレクトリで "/bin/ls -a" が行うように、指定されたツリーオブジェクトの内容を表示します。ただし、
-
動作は "/bin/ls" とわずかに異なり、<path> は一致させるパターン一覧を表します。たとえば、ディレクトリ名(
-r
なし)を指定すると動作が異なり、引数の順序は関係ありません。 -
動作は "/bin/ls" と似ており、<path> は現在の作業ディレクトリを基準とした相対パスとして扱われます。たとえば、dir ディレクトリを含む sub ディレクトリにいる場合、ツリーの内容(
HEAD
内のsub/dir
)を表示するには、git ls-tree -r HEAD dir を実行します。この場合、ルートレベルにないツリー(例:git ls-tree -r HEAD:sub dir
)を指定しないようにしてください。これは、HEAD
コミット内でsub/sub/dir
を要求することになります。ただし、--full-tree オプションを渡すことで、現在の作業ディレクトリを無視できます。
オプション
- <tree-ish>
-
ツリーishのID。
- -d
-
指定されたツリーエントリ自体のみを表示し、その子孫は表示しません。
- -r
-
サブツリーに再帰的に処理します。
- -t
-
サブツリーに再帰的に処理する場合でも、ツリーエントリを表示します。
-r
が渡されていない場合は効果がありません。-d
は-t
を意味します。 - -l
- --long
-
BLOB(ファイル)エントリのオブジェクトサイズを表示します。
- -z
-
出力に\0行終端を使用し、ファイル名を引用符で囲みません。詳細については、以下の出力形式を参照してください。
- --name-only
- --name-status
-
ファイル名のみを一覧表示します(「long」出力ではなく)、1行につき1つ。
--object-only
と組み合わせることはできません。 - --object-only
-
オブジェクト名のみを一覧表示します。1行につき1つ。
--name-only
または--name-status
と組み合わせることはできません。これは--format='%(objectname)'
を指定することと同じですが、このオプションと正確な形式の両方の場合、コマンドは汎用的なフォーマットメカニズムを経由するのではなく、手動で最適化されたコードパスを使用します。 - --abbrev[=<n>]
-
40バイトの16進数のオブジェクト行全体を表示する代わりに、オブジェクトを一意に参照する少なくとも<n> 16進数の長さの最短プレフィックスを表示します。--abbrev=<n>で桁数を指定できます。
- --full-name
-
現在の作業ディレクトリを基準とした相対パス名ではなく、完全なパス名を表示します。
- --full-tree
-
一覧表示を現在の作業ディレクトリに制限しません。 --full-nameを意味します。
- --format=<format>
-
表示される結果から
%(fieldname)
を補間する文字列。また、%%
を%
に、%xNN
(NN
は16進数の数字)を16進数コードNN
の文字に補間します。たとえば、%x00
は\0
(NUL)、%x09
は\t
(TAB)、%x0a
は\n
(LF)に補間されます。指定した場合、--format
は--long
、--name-only
、--object-only
を含む他の形式変更オプションと組み合わせることができません。 - [<path>…]
-
パスが指定されている場合、それらを表示します(これは実際には生のパス名ではなく、一致させるパターンのリストです)。そうでない場合は、暗黙的にツリーのルートレベルを唯一のパス引数として使用します。
出力形式
ls-tree
の出力形式は、--format
オプションまたは--name-only
などの他の形式変更オプション(上記の--format
を参照)によって決定されます。
特定の--format
ディレクティブの使用は、これらのオプションを使用することと同等ですが、完全なフォーマット機構を呼び出すことは、適切なフォーマットオプションを使用するよりも遅くなる可能性があります。
--format
が既存のオプションに正確にマップする場合、ls-tree
は適切な高速パスを使用します。したがって、デフォルトの形式は以下と同等です。
%(objectmode) %(objecttype) %(objectname)%x09%(path)
この出力形式は、git update-indexの--index-info --stdin
が期待する形式と互換性があります。
-l
オプションを使用する場合、形式は以下のように変更されます。
%(objectmode) %(objecttype) %(objectname) %(objectsize:padded)%x09%(path)
<objectname>で識別されるオブジェクトサイズはバイト単位で表示され、最小幅7文字で右寄せされます。オブジェクトサイズはBLOB(ファイル)エントリについてのみ表示されます。他のエントリについては、サイズの代わりに「-」文字が表示されます。
-z
オプションを使用しない場合、「異常な」文字を含むパス名は、構成変数core.quotePath
について説明されているように引用符で囲まれます(git-config[1]を参照)。-z
を使用すると、ファイル名はそのまま出力され、行はNULバイトで終了します。
カスタム形式
--format
オプションを使用してカスタム形式で出力することができます。このオプションは、%(fieldname)
表記を使用してさまざまなフィールドを補間できます。たとえば、「objectname」と「path」フィールドだけが必要な場合は、次のような特定の「--format」で実行できます。
git ls-tree --format='%(objectname) %(path)' <tree-ish>
Git
git[1]スイートの一部