セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.42.1 → 2.50.1 変更なし
-
2.42.0
2023-08-21
- 2.36.1 → 2.41.3 変更なし
-
2.36.0
2022-04-18
- 2.30.1 → 2.35.8 変更なし
-
2.30.0
2020-12-27
- 2.22.1 → 2.29.3 変更なし
-
2.22.0
2019-06-07
- 2.14.6 → 2.21.4 変更なし
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 変更なし
-
2.9.5
2017-07-30
- 2.1.4 → 2.8.6 変更なし
-
2.0.5
2014-12-17
概要
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> は現在の作業ディレクトリからの相対パスとして解釈されます。例えば、ディレクトリ sub の中にディレクトリ dir がある場合、git ls-tree -r HEAD dir を実行すると、ツリー(
HEAD
内のsub/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
-
ファイル名のみを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]スイートの一部