設定と構成
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ
デバッグ
メール
外部システム
サーバ管理
- 2.46.2 → 2.47.0 変更なし
-
2.46.1
09/13/24
- 2.44.1 → 2.46.0 変更なし
-
2.44.0
02/23/24
- 2.43.1 → 2.43.5 変更なし
-
2.43.0
11/20/23
- 2.42.1 → 2.42.3 変更なし
-
2.42.0
08/21/23
- 2.40.1 → 2.41.2 変更なし
-
2.40.0
03/12/23
- 2.39.1 → 2.39.5 変更なし
-
2.39.0
12/12/22
- 2.38.1 → 2.38.5 変更なし
-
2.38.0
10/02/22
- 2.36.1 → 2.37.7 変更なし
-
2.36.0
04/18/22
- 2.35.1 → 2.35.8 変更なし
-
2.35.0
01/24/22
- 2.31.1 → 2.34.8 変更なし
-
2.31.0
03/15/21
- 2.30.2 → 2.30.9 変更なし
-
2.30.1
02/08/21
-
2.30.0
12/27/20
- 2.27.1 → 2.29.3 変更なし
-
2.27.0
06/01/20
- 2.22.1 → 2.26.3 変更なし
-
2.22.0
06/07/19
- 2.18.1 → 2.21.4 変更なし
-
2.18.0
06/21/18
- 2.17.0 → 2.17.6 変更なし
-
2.16.6
12/06/19
- 2.14.6 → 2.15.4 変更なし
-
2.13.7
05/22/18
- 2.12.5 変更なし
-
2.11.4
09/22/17
-
2.10.5
09/22/17
-
2.9.5
07/30/17
-
2.8.6
07/30/17
- 2.2.3 → 2.7.6 変更なし
-
2.1.4
12/17/14
-
2.0.5
12/17/14
概要
git ls-files [-z] [-t] [-v] [-f] [-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored] [-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified] [--resolve-undo] [--directory [--no-empty-directory]] [--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>]] [--format=<format>] [--] [<file>…]
説明
このコマンドは、インデックス内のファイル一覧と実際の作業ディレクトリ一覧をマージし、その2つの様々な組み合わせを表示します。
表示するファイルを決定するためにいくつかのフラグを使用でき、インデックスに複数のエントリがある場合、または関連するファイル選択オプションに複数のステータスが適用される場合、各ファイルは複数回出力される可能性があります。
オプション
- -c
- --cached
-
Git のインデックスにキャッシュされているすべてのファイル、つまり、追跡されているすべてのファイルを表示します。( -c/-s/-d/-o/-u/-k/-m/--resolve-undo オプションが指定されていない場合は、これがデフォルトです。)
- -d
- --deleted
-
ステージングされていない削除が行われたファイルを表示します。
- -m
- --modified
-
ステージングされていない変更が行われたファイルを表示します。(ステージングされていない削除も、ステージングされていない変更としてカウントされます。)
- -o
- --others
-
出力にその他の(つまり、追跡されていない)ファイルを表示します。
- -i
- --ignored
-
出力に無視されたファイルのみを表示します。明示的な -c または -o と共に使用する必要があります。インデックス内のファイルを表示する場合(つまり、-c と共に使用する場合)、除外パターンに一致するファイルのみを出力します。「その他」のファイルを表示する場合(つまり、-o と共に使用する場合)、除外パターンに一致するファイルのみを表示します。標準的な無視ルールは自動的に有効になりません。そのため、少なくとも1つの
--exclude*
オプションが必要です。 - -s
- --stage
-
出力にステージングされたコンテンツのモードビット、オブジェクト名、ステージ番号を表示します。
- --directory
-
ディレクトリ全体が「その他」として分類されている場合、そのコンテンツ全体ではなく、その名前だけ(末尾にスラッシュが付いたもの)を表示します。-o/--others がないと効果はありません。
- --no-empty-directory
-
空のディレクトリを一覧表示しません。--directory がないと効果はありません。
- -u
- --unmerged
-
出力にマージされていないファイルに関する情報を表示しますが、他の追跡されているファイルは表示しません( --stage を強制し、 --cached を上書きします)。
- -k
- --killed
-
ファイルシステム上の追跡されていないファイルで、追跡されているファイルがファイルシステムに書き込まれるのを妨げているファイル/ディレクトリの競合のために削除する必要があるものを表示します。
- --resolve-undo
-
インデックスに resolve-undo 情報を持つファイルとその resolve-undo 情報を一緒に表示します。(resolve-undo 情報は、「git checkout -m $PATH」を実装するために使用されるものであり、つまり、誤って解決されたマージの競合を再現するために使用されます。)
- -z
-
出力で \0 行終端を使用し、ファイル名を引用符で囲みません。詳細については、以下の OUTPUT を参照してください。
- --deduplicate
-
ファイル名のみが表示される場合、マージ中に複数のステージがあること、または
--deleted
と--modified
オプションを同時に指定することから生じる可能性のある重複を抑制します。-t
、--unmerged
、または--stage
オプションのいずれかが使用されている場合、このオプションは効果がありません。 - -x <パターン>
- --exclude=<パターン>
-
パターンに一致する追跡されていないファイルをスキップします。パターンはシェルワイルドカードパターンであることに注意してください。詳細については、以下の EXCLUDE PATTERNS を参照してください。
- -X <ファイル>
- --exclude-from=<ファイル>
-
<ファイル> から除外パターンを読み取ります。1行につき1つ。
- --exclude-per-directory=<ファイル>
-
<ファイル> 内の、ディレクトリとそのサブディレクトリにのみ適用される追加の除外パターンを読み取ります。Porcelain コマンドの動作をエミュレートしようとしている場合は、代わりに
--exclude-standard
オプションを使用する方が簡単で完全です。 - --exclude-standard
-
標準的な Git 除外を追加します:.git/info/exclude、各ディレクトリ内の .gitignore、およびユーザーのグローバル除外ファイル。
- --error-unmatch
-
<ファイル> のいずれかがインデックスに表示されない場合、エラーとして扱います(1 を返します)。
- --with-tree=<ツリーish>
-
--error-unmatch を使用してユーザーが提供した <ファイル> (つまり、パスパターン) 引数をパスに展開する場合、指定された <ツリーish> 以降にインデックスから削除されたパスはまだ存在すると想定します。
-s
または-u
オプションと共にこのオプションを使用しても意味がありません。 - -t
-
ステータスタグをファイル名と共に表示します。スクリプト作成の目的では、git-status[1]
--porcelain
と git-diff-files[1]--name-status
がほぼ常に優れた代替手段です。よりユーザーフレンドリーな代替手段としては、git-status[1]--short
または git-diff[1]--name-status
を検討する必要があります。このオプションは、ステータスタグ(ファイル名の前にスペースを空けて付加されます)という形で、各ファイル名を表示する理由を提供します。ステータスタグはすべて、次のリストからの単一文字です。
- -v
-
-t
と似ていますが、assume unchanged としてマークされているファイルには小文字を使用します(git-update-index[1] を参照)。 - -f
-
-t
と似ていますが、fsmonitor valid としてマークされているファイルには小文字を使用します(git-update-index[1] を参照)。 - --full-name
-
サブディレクトリから実行する場合、コマンドは通常、現在のディレクトリを基準とした相対パスを出力します。このオプションは、プロジェクトのトップディレクトリを基準とした相対パスを出力するように強制します。
- --recurse-submodules
-
リポジトリ内の各アクティブなサブモジュールで ls-files を再帰的に呼び出します。現在、 --cached と --stage モードのみがサポートされています。
- --abbrev[=<n>]
-
40バイトの16進オブジェクトライン全体を表示する代わりに、オブジェクトを一意に参照する少なくとも <n> 桁の16進数の最短プレフィックスを表示します。デフォルト以外の桁数は --abbrev=<n> で指定できます。
- --debug
-
ファイルについて説明する各行の後に、そのキャッシュエントリに関する詳細データを追加します。これは、手動で検査するために可能な限り多くの情報を表示することを目的としています。正確な形式はいつでも変更される可能性があります。
- --eol
-
ファイルの <eolinfo> と <eolattr> を表示します。<eolinfo> は、「text」属性が「auto」(または設定されておらず、core.autocrlf が false ではない) の場合に Git が使用するファイルコンテンツ識別子です。<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」がサポートされています。
通常のファイルの場合、インデックス内の<eolinfo> ("i/<eolinfo>") と作業ツリー内の<eolinfo> ("w/<eolinfo>") が表示され、その後に ("attr/<eolattr>") が続きます。
- --sparse
-
インデックスがスパースの場合、含まれるファイルに展開せずにスパースディレクトリを表示します。スパースディレクトリは、"x/"のように末尾にスラッシュが付いた形で表示されます。
- --format=<format>
-
表示される結果から
%(fieldname)
を補間する文字列です。また、%%
を%
に、%xXX
(XXは16進数)を16進コードXX
の文字に補間します。例えば、%x00
は\0
(NUL)、%x09
は\t
(TAB)、%x0a
は\n
(LF)に補間されます。--formatは、-s
、-o
、-k
、-t
、--resolve-undo
、--eol
と併用できません。 - --
-
以降の引数をオプションとして解釈しません。
- <file>
-
表示するファイル。ファイルが指定されていない場合は、他の指定された条件に一致するすべてのファイルが表示されます。
出力
--stage
が指定されていない限り、git ls-filesはファイル名だけを出力します。指定された場合は、
[<tag> ]<mode> <object> <stage> <file>
git ls-files --eol は i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file> を表示します。
git ls-files --unmerged と git ls-files --stage を使用して、マージされていないパスの詳細情報を調べることができます。
マージされていないパスでは、単一のモード/SHA-1ペアを記録する代わりに、インデックスは最大3つのそのようなペアを記録します。ステージ1のツリーO、ステージ2のA、ステージ3のBから1つずつです。この情報は、ユーザー(またはポーセレン)が最終的にパスに記録する必要があるものを確認するために使用できます。(状態に関する詳細については、git-read-tree[1]を参照してください)
-z
オプションを使用しない場合、「特殊な」文字を含むパス名は、設定変数core.quotePath
の説明に従って引用符で囲まれます(git-config[1]を参照)。-z
を使用すると、ファイル名がそのまま出力され、行はNULバイトで終了します。
--format
オプションを使用することで、カスタム形式で出力できます。このオプションは、%(fieldname)
表記を使用してさまざまなフィールドを補間できます。例えば、「objectname」と「path」フィールドだけに関心がある場合は、次のような特定の「--format」で実行できます。
git ls-files --format='%(objectname) %(path)'
フィールド名
各パスの表示方法は、--format=<format>
オプションを使用してカスタマイズできます。<format>文字列内の%(fieldname)は、インデックスエントリのさまざまな側面が補間されます。以下の「fieldname」が認識されます。
- objectmode
-
インデックスに記録されているファイルのモード。
- objecttype
-
インデックスに記録されているファイルのオブジェクトタイプ。
- objectname
-
インデックスに記録されているファイルの名前。
- objectsize[:padded]
-
インデックスに記録されているファイルのオブジェクトサイズ(オブジェクトが
commit
またはtree
の場合は「-」)。%(objectsize:padded)のように、サイズのパディング形式もサポートします。 - stage
-
インデックスに記録されているファイルのステージ。
- eolinfo:index
- eolinfo:worktree
-
パスのインデックスまたはワークツリー内のコンテンツの<eolinfo>(
--eol
オプションの説明を参照)。 - eolattr
-
パスに適用される<eolattr>(
--eol
オプションの説明を参照)。 - path
-
インデックスに記録されているファイルのパス名。
除外パターン
git ls-filesは、--others
または--ignored
フラグが指定されている場合、ディレクトリツリーをトラバースして表示するファイルを見つける際に、「除外パターン」のリストを使用できます。gitignore[5]は、除外パターンの形式を指定しています。
これらの除外パターンは、以下の場所から順番に指定できます。
-
コマンドラインフラグ
--exclude=<pattern>
は、単一のパターンを指定します。パターンは、コマンドラインに出現する順序で並び替えられます。 -
コマンドラインフラグ
--exclude-from=<file>
は、パターンリストを含むファイルを指定します。パターンは、ファイルに出現する順序で並び替えられます。 -
コマンドラインフラグ
--exclude-per-directory=<name>
は、git ls-filesが検査する各ディレクトリ内のファイル名(通常は.gitignore
)を指定します。より深いディレクトリのファイルが優先されます。パターンは、ファイルに出現する順序で並び替えられます。
--exclude
でコマンドラインに指定された、または--exclude-from
で指定されたファイルから読み取られたパターンは、ディレクトリツリーの一番上から相対的です。--exclude-per-directory
で指定されたファイルから読み取られたパターンは、そのパターンファイルが存在するディレクトリから相対的です。
一般的に、ポーセレンコマンドと同じ方法で除外ルールを適用したい場合は、--exclude-standard
を使用できます。--exclude-standard
が指定する内容をエミュレートするには、--exclude-per-directory=.gitignore
を指定し、次に
-
存在する場合は、設定変数
core.excludesfile
で指定されたファイル、または$XDG_CONFIG_HOME/git/ignore
ファイル。 -
$GIT_DIR/info/exclude
ファイル。
--exclude-from=
オプション。
Git
git[1]スイートの一部