セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.46.2 → 2.50.1 変更なし
-
2.46.1
2024-09-13
- 2.44.1 → 2.46.0 変更なし
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 変更なし
-
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
を参照してください。このオプションは、各ファイル名を表示する理由をステータスタグ (スペースとファイル名が続く) の形式で提供します。ステータスタグはすべて以下のリストの1文字です
- -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" のスパースディレクトリに対して "x/" のように末尾のスラッシュ付きで表示されます。
- --format=<format>
-
表示される結果から
%
(fieldname
) を補間する文字列です。また、%%
を%
に、%xXX
を16進コードXX
の文字に補間します。XX
は16進数です。例えば、%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、ステージ2の A、ステージ3の B からのペアです。この情報は、ユーザー (またはポーセレン) がそのパスに最終的に記録されるべきものを見るために使用できます。(状態の詳細については 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 で指定されたファイルから読み取られたパターンは、パターンファイルが存在するディレクトリからの相対パスです。
一般に、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]スイートの一部