SYNOPSIS

git ls-files [-z] [-t] [-v] [-f]
                (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*
                (-[c|d|o|i|s|u|k|m])*
                [--eol]
                [--deduplicate]
                [-x <pattern>|--exclude=<pattern>]
                [-X <file>|--exclude-from=<file>]
                [--exclude-per-directory=<file>]
                [--exclude-standard]
                [--error-unmatch] [--with-tree=<tree-ish>]
                [--full-name] [--recurse-submodules]
                [--abbrev[=<n>]] [--] [<file>…]

DESCRIPTION

これにより、インデックス内のファイルリストが実際の作業ディレクトリリストとマージされ、2つのさまざまな組み合わせが表示されます。

以下の1つ以上のオプションを使用して、表示されるファイルを判別できます:

OPTIONS

-c
--cached

キャッシュされたファイルを出力に表示します(デフォルト)

-d
--deleted

削除されたファイルを出力に表示します

-m
--modified

変更されたファイルを出力に表示

-o
--others

その他(たとえば 追跡されていない)ファイルを出力に表示します

-i
--ignored

無視されたファイル(ignored files)のみを出力に表示します。インデックのファイルを表示する場合は、除外パターンに一致するファイルのみを印刷してください。 「その他」のファイルを表示する場合は、除外パターンに一致するファイルのみを表示してください。標準の無視ルールは自動的にアクティブ化されないため、少なくとも1つの --exclude* オプションが必要です。

-s
--stage

ステージングされたコンテンツのモードビット、オブジェクト名、ステージ番号を出力に表示します。

--directory

ディレクトリ全体が「その他」に分類される場合は、(末尾にスラッシュを付けて)そのディレクトリ名だけを表示し、ディレクトリの内容を表示しないでください。

--no-empty-directory

空のディレクトリをリストしないでください。 --directory を指定していないと効果がありません。

-u
--unmerged

マージされていないファイルを出力に表示します(--stage の機能を含む)

-k
--killed

checkout-indexを成功させるために、ファイル/ディレクトリの競合のために削除する必要があるファイルシステム上のファイルを表示します。

-z

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

--deduplicate

ファイル名のみが表示されている場合は、マージ中に複数のステージがあること、または --deleted--modified オプションを同時に指定することで発生する可能性のある重複を抑制します。 -t または --unmerged または --stage オプションのいずれかが使用されている場合、このオプションは効果がありません。

-x <pattern>
--exclude=<pattern>

パターンに一致する追跡されていないファイルをスキップします。パターンはシェルワイルドカードパターンであることに注意してください。 詳細については、以下の「EXCLUDE PATTERNS」を参照してください。

-X <file>
--exclude-from=<file>

<file> から除外パターンを読み取ります。1行に1つづつです。

--exclude-per-directory=<file>

各ディレクトリとサブディレクトリにのみ適用される、追加の除外パターンを、そのディレクトリの <file> から読み取ります。(通常は .gitignore )

--exclude-standard

標準のGit除外を追加します: .git/info/exclude と 各ディレクトリの .gitignore と ユーザーのグローバル除外ファイル。

--error-unmatch

<file> がインデックスに現れない場合は、これをエラーとして扱います(1を返します)。

--with-tree=<tree-ish>

--error-unmatch を使用して、ユーザーが指定した <file>(つまり、パスパターン)引数をパスに展開する場合、名前付きの <tree-ish> がまだ存在するためにインデックスから削除されたパスを装います。 このオプションを -s または -u オプションと一緒に使用しても意味がありません。

-t

この機能は準非推奨です。スクリプト化の目的では、 git-status(1) --porcelaingit-diff-files(1) --name-status がほとんどの場合優れた代替手段であり、さらにユーザーフレンドリーな代替手段については、 git-status(1) --short または git-diff(1) --name-status をご覧下さい。

このオプションは、各行の先頭にある以下のタグ(スペースが続く)でファイルのステータスを識別します:

H

cached

S

skip-worktree

M

unmerged

R

removed/deleted

C

modified/changed

K

to be killed

?

other

-v

-t に似ていますが、「assume unchanged」(変更されていないと仮定する)とマークされたファイルには小文字を使用します(git-update-index(1) を参照)。

-f

-t に似ていますが、「fsmonitor valid」とマークされているファイルには小文字を使用します(git-update-index(1) を参照)。

--full-name

サブディレクトリから実行する場合、コマンドは通常、現在のディレクトリからの相対パスを出力します。 このオプションは、プロジェクトの最上位ディレクトリを基準にしたパスを強制的に出力します。

--recurse-submodules

リポジトリ内のアクティブなサブモジュールごとに ls-files を再帰的に呼び出します。 現在、 --cached モードのみがサポートされています。

--abbrev[=<n>]

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

--debug

ファイルを説明する各行の後に、そのキャッシュエントリに関するデータを追加します。これは、手動検査のために可能な限り多くの情報を表示することを目的としています。正確な形式は予告なく変更される可能性があります。

--eol

ファイルの <eolinfo> と <eolattr> を表示します。 <eolinfo> は、「text」属性が「auto」の場合(または設定されておらず、 core.autocrlf が false でない場合)にGitが使用するファイルコンテンツIDです。 <eolinfo> は、「-text」、「none」、「lf」、「crlf」、「mixed」、「」のいずれかです。

「」は、ファイルが通常のファイルではない、インデックスにない、または作業ツリーでアクセスできないことを意味します。

<eolattr> は、チェックアウトまたはコミット時に使用される属性であり、「」・「-text」・「text」・「text=auto」・「text eol=lf」・「text eol=crlf」 のいずれかです。 Git 2.10以降では「text=auto eol=lf」と「text=auto eol=crlf」がサポートされています。

通常のファイルの場合、インデックス("i/<eolinfo>")と作業ツリー("w/<eolinfo>")の両方の<eolinfo>が表示され、そのうしろに "attr/<eolattr>" が続きます。

--

これ以降の引数をオプションとして解釈しないでください。

<file>

表示するファイル。ファイルが指定されていない場合、他の指定された基準に一致するすべてのファイルが表示されます。

OUTPUT

git ls-files は、 --stage が指定されていない限り、ファイル名を出力するだけです。指定されている場合は、以下のように出力されます:

[<tag> ]<mode> <object> <stage> <file>

git ls-files --eol の場合: i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file>

git ls-files --unmergedgit ls-files --stage を使用して、マージされていないパスの詳細情報を調べることができます。

マージされていないパスの場合、単一の モード/SHA-1 ペアを記録する代わりに、インデックスは最大3つのそのようなペアを記録します。 ステージ1のツリーOから一つと、ステージ2のAから一つと、ステージ3のBからの一つです。この情報は、ユーザー(または磁器コマンド)がパスに最終的に記録する内容を確認するために使用できます。(状態の詳細については、 git-read-tree(1) を参照してください)

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

EXCLUDE PATTERNS

git ls-files は、ディレクトリツリーをトラバースし、フラグ --others または --ignored が指定されている場合に表示するファイルを検索するときに、「除外パターン」(exclude patterns)のリストを使用できます。 gitignore(5) は、除外パターンの形式を指定します。

これらの除外パターンは、以下の順序で取得されます:

  1. コマンドラインフラグ --exclude=<pattern> は、単一のパターンを指定します。 パターンは、コマンドラインに現れるのと同じ順序で並べられます。

  2. コマンドラインフラグ --exclude-from=<file> は、パターンのリストを含むファイルを指定します。 パターンは、ファイルに現れるのと同じ順序で並べられます。

  3. コマンドラインフラグ --exclude-per-directory=<name> ` は、 'git ls-files' が調べる各ディレクトリ内のファイルの名前(通常は `.gitignore )を指定します。 より深いディレクトリ内のファイルが優先されます。パターンは、ファイルに現れるのと同じ順序で並べられます。

コマンドラインで --exclude で指定されたパターン、または --exclude-from で指定されたファイルから読み取られたパターンは、ディレクトリツリーの最上位を基準にしています。 --exclude-per-directory で指定されたファイルから読み取られたパターンは、パターンファイルが置かれているディレクトリを基準にしています。

SEE ALSO

GIT

Part of the git(1) suite