日本語 ▾ Topics ▾ Latest version ▾ git-check-ignore last updated in 2.43.0

NAME

git-check-ignore - gitignore / 除外ファイルのデバッグ

概要

git check-ignore [<options>] <pathname>…​
git check-ignore [<options>] --stdin

説明

コマンドラインまたは --stdin を介して与えられた各パス名について、そのファイルが .gitignore(または除外機構の他の入力ファイル)により除外されているかをチェックし、除外されていればそのパスを出力します。

デフォルトでは、追跡中のファイルは除外ルールの対象にならないため、一切表示されません。ただし、--no-index を参照してください。

オプション

-q, --quiet

何も出力せず、終了ステータスのみを設定します。これは単一のパス名に対してのみ有効です。

-v, --verbose

除外されるパスを単に出力するのではなく、各パスが除外パターンに一致した場合、その除外パターンとともにパスを出力します。(除外パターンに一致するということは通常、そのパスが除外されることを意味しますが、パターンが "!" で始まる場合は否定パターンとなり、一致してもそのパスは除外されないことを意味します。)

除外ソース内および間の優先順位ルールについては、gitignore[5] を参照してください。

--stdin

標準入力から1行ずつパス名を読み込みます。

-z

出力形式は機械可読となるように変更されます(下記参照)。さらに、--stdin が指定された場合、入力パスは改行の代わりに NUL 文字で区切られます。

-n, --non-matching

どのパターンにも一致しない指定されたパスを表示します。これは --verbose が有効なときにのみ意味を成し、一致するか否かが識別できなくなってしまいます。

--no-index

チェックの際にインデックスを参照しません。これは、例えば git add . によってなぜパスが追跡対象となり、ユーザーの期待通りにルールで無視されなかったのか、または git add -f で追加されたパスに一致する否定パターンを開発する際のデバッグに使用できます。

OUTPUT

デフォルトでは、指定されたパス名が ignore パターンに一致すると、そのパスが1行ずつ出力されます。もしどのパターンにも一致しなければ、そのパスについては何も出力されません。つまり、そのパスは無視されないことを意味します。

もし --verbose が指定されると、出力は次の形式の一連の行となります:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

<pathname> は照会されるファイルのパス、<pattern> は一致したパターン、<source> はパターンのソースファイル、そして <linenum> はそのソース内でのパターンの行番号です。パターンに "!" のプレフィックスまたは "/" のサフィックスが含まれている場合、出力時にそのまま保持されます。<source> は、core.excludesFile で設定されたファイルを指す場合は絶対パスになり、.git/info/exclude または各ディレクトリの除外ファイルを指す場合はリポジトリルートからの相対パスとなります。

もし -z が指定されると、出力されるパス名はヌル文字で区切られます。また、--verbose が指定された場合、コロンやハードタブの代わりにヌル文字が使用されます:

<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>

もし -n または --non-matching が指定されると、非一致のパス名も出力され、その場合、各出力レコードにおいて <pathname> を除くすべてのフィールドが空になります。これは、対話的でない実行時に、ファイルを長時間動作する check-ignore プロセスの STDIN に順次送信でき、各ファイルごとに STDOUT がそのファイルがパターンに一致したか否かを示すために有用です。(このオプションなしでは、あるファイルについて出力がない場合に、そのファイルがパターンに一致しなかったのか、あるいはまだ出力が生成されていないのかを判断することは不可能になります。)

バッファリングは git[1]GIT_FLUSH オプションに記載されている通りに行われます。呼び出し側は、入力バッファの過剰な充填や出力バッファの空読みから生じるデッドロックを回避する責任があります。

終了ステータス

0

指定されたパスのうち、1つ以上が除外されています。

1

指定されたパスはすべて除外されていません。

128

致命的なエラーが発生しました。

GIT

Part of the git[1] suite

scroll-to-top