セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣例
- 日常のGit
- よくある質問 (FAQ)
- 用語集
- Hooks (フック)
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
低レベルコマンド (Plumbing Commands)
- 2.46.2 → 2.49.0 変更なし
-
2.46.1
2024-09-13
- 2.44.1 → 2.46.0 変更なし
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.6 変更なし
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 変更なし
-
2.42.0
2023-08-21
- 2.40.1 → 2.41.3 変更なし
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 変更なし
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 変更なし
-
2.38.0
2022-10-02
- 2.36.1 → 2.37.7 変更なし
-
2.36.0
2022-04-18
- 2.35.1 → 2.35.8 変更なし
-
2.35.0
2022-01-24
- 2.31.1 → 2.34.8 変更なし
-
2.31.0
2021-03-15
- 2.30.2 → 2.30.9 変更なし
-
2.30.1
2021-02-08
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 変更なし
-
2.27.0
2020-06-01
- 2.22.1 → 2.26.3 変更なし
-
2.22.0
2019-06-07
- 2.18.1 → 2.21.4 変更なし
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 変更なし
-
2.16.6
2019-12-06
- 2.14.6 → 2.15.4 変更なし
-
2.13.7
2018-05-22
- 2.12.5 変更なし
-
2.11.4
2017-09-22
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.2.3 → 2.7.6 変更なし
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
概要
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>…]
説明
このコマンドは、インデックス内のファイルリストと実際のワーキングディレクトリのリストを結合し、それらの様々な組み合わせを表示します。
表示するファイルを決定するためにいくつかのフラグを使用できます。また、インデックス内に複数のエントリがある場合や、関連するファイル選択オプションに対して複数のステータスが適用される場合、各ファイルが複数回表示されることがあります。
オプション
- -c
- --cached
-
Gitのインデックスにキャッシュされているすべてのファイル、つまり追跡されているすべてのファイルを表示します。(これは、-c/-s/-d/-o/-u/-k/-m/--resolve-undo オプションが指定されていない場合のデフォルトです。)
- -d
- --deleted
-
ステージされていない削除があるファイルを表示します
- -m
- --modified
-
ステージされていない変更があるファイルを表示します (ステージされていない削除もステージされていない変更としてカウントされることに注意してください)
- -o
- --others
-
出力にその他のファイル (つまり、追跡されていないファイル) を表示します
- -i
- --ignored
-
出力に無視されたファイルのみを表示します。明示的な -c または -o のいずれかと一緒に使用する必要があります。インデックス内のファイルを表示する場合 (つまり、-c と一緒に使用する場合)、除外パターンに一致するファイルのみを出力します。「その他の」ファイルを表示する場合 (つまり、-o と一緒に使用する場合)、除外パターンに一致するファイルのみを表示します。標準の無視ルールは自動的にアクティブになりません。したがって、
--exclude*
オプションの少なくとも1つが必要です。 - -s
- --stage
-
出力に、ステージされたコンテンツのモードビット、オブジェクト名、ステージ番号を表示します。
- --directory
-
ディレクトリ全体が「その他」として分類されている場合、その名前 (末尾にスラッシュが付く) のみを表示し、その内容全体は表示しません。-o/--others なしでは効果がありません。
- --no-empty-directory
-
空のディレクトリをリストしません。--directory なしでは効果がありません。
- -u
- --unmerged
-
出力にマージされていないファイルに関する情報を表示しますが、その他の追跡されたファイルは表示しません (--stage を強制し、--cached をオーバーライドします)。
- -k
- --killed
-
追跡されたファイルをファイルシステムに書き込むことを妨げるファイル/ディレクトリの競合により削除する必要がある、ファイルシステム上の追跡されていないファイルを表示します。
- --resolve-undo
-
インデックスに解決取り消し情報を持つファイルを、その解決取り消し情報とともに表示します。(解決取り消し情報は、「git checkout -m $PATH」を実装するために使用されます。つまり、誤って解決されたマージの競合を再作成するために使用されます)
- -z
-
出力でヌル文字 (\0) で行を終端し、ファイル名を引用しません。詳細については、以下の出力セクションを参照してください。
- --deduplicate
-
ファイル名のみを表示する場合、マージ中の複数ステージや、
--deleted
および--modified
オプションを同時に指定することによって発生する重複を抑制します。-t
、--unmerged
、または--stage
オプションのいずれかが使用されている場合、このオプションは効果がありません。 - -x <pattern>
- --exclude=<pattern>
-
パターンに一致する追跡されていないファイルをスキップします。パターンはシェルワイルドカードパターンであることに注意してください。詳細については、以下の除外パターンセクションを参照してください。
- -X <file>
- --exclude-from=<file>
-
<file> から除外パターンを読み取ります。1行に1つ。
- --exclude-per-directory=<file>
-
<file> 内のディレクトリとそのサブディレクトリにのみ適用される追加の除外パターンを読み取ります。Porcelain コマンドの動作をエミュレートしようとしている場合、代わりに
--exclude-standard
オプションを使用する方が簡単で徹底的です。 - --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] の
--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>
-
表示するファイル。ファイルが指定されていない場合、他の指定された条件に一致するすべてのファイルが表示されます。
出力
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 --unmerged と git ls-files --stage は、マージされていないパスの詳細情報を調べるために使用できます。
マージされていないパスの場合、単一のモード/SHA-1ペアを記録する代わりに、インデックスは最大3つのそのようなペアを記録します。ステージ1のツリーOから1つ、ステージ2のAから1つ、ステージ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)
は、インデックスエントリの様々な側面に対応するフィールド名に展開されます。以下の「フィールド名」が認識されます。
- 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 で指定されたファイルから読み込まれたパターンは、パターンファイルが存在するディレクトリからの相対パスです。
一般的に、Porcelain コマンドと同じ方法で除外ルールを適用したい場合は、--exclude-standard
を使用できるはずです。--exclude-standard
が指定するものをエミュレートするには、--exclude-per-directory=.gitignore
を指定し、次に以下を指定します。
-
core.excludesfile
設定変数で指定されたファイル (存在する場合)、または$XDG_CONFIG_HOME/git/ignore
ファイル。 -
$GIT_DIR/info/exclude
ファイル。
--exclude-from=
オプションを使用します。
GIT
git[1] スイートの一部