0

ギティグノアテスター

.gitignore ルールとファイル パスのリストを貼り付けて、どのファイルが無視されるのか、どのルールと行によって無視されるのか、親ディレクトリがすでに無視されているためにどの否定ルールが暗黙的に無効になっているのかを正確に確認します。

Buy Me a Coffee at ko-fi.com
処理中... 0%
.gitignore ルールの解析
一致するファイルパス
完了

結果

「.gitignore 否定が機能しないのはなぜですか?」これは git に関する最も一般的な質問の 1 つであり、正直な答えはほとんど常に同じです。以前のルールで既に除外されているディレクトリ内のファイルを再度インクルードしようとする「!pattern」は決して機能しません。git は無視されたディレクトリに降りて、そのディレクトリ内の何かを再チェックしないからです。このツールは、近似ではなく、git の実際の .gitignore マッチング アルゴリズムを再実装するため、git がサポートする他のすべてのパターン ルールとともに、その正確な状況を捉えて説明できます。

.gitignore ルールを 1 つのボックスに貼り付け、ファイル パスのリスト (`dist/index.js`、`node_modules/foo/bar.js`、または `.env` など、1 行に 1 つ) をもう 1 つのボックスに貼り付けます。すると、ツールは git とまったく同じ方法で各パスを評価します。コメントと空白行はスキップされ、エスケープされない限り末尾のスペースは削除され、先頭の `!` はルールを無効にし、先頭の `/` はルールを無効にします。任意の深さで一致させるのではなくルートにアンカーし、末尾の `/` でディレクトリに制限し、`*`、`?`、`[abc]` 文字クラスと `**` (ディレクトリ境界を越えて一致する) はすべて、文書化された glob ルールに従って機能します。

重要なのは、すべてのルールに対して完全なパスを個別にテストするのではなく、git 独自の無視エンジンが動作するのと同じ方法で、ルートから下にディレクトリごとにパスがチェックされることです。これにより、デッド否定のケースを正しく検出できるようになります。 `dist/` が 3 行目で無視され、その後の `!dist/keep.js` がその中の 1 つのファイルを救出しようとした場合、このツールは `dist/keep.js` がまだ無視されていると報告し、その理由として 3 行目のルールを指定し、黙って機能したふりをするのではなく、否定にシャドウとして個別にフラグを立てます。

結果テーブルには、テストされたすべてのパスに独自の行が表示され、明確な Yes/No の無視判定、それを決定した正確なルール テキストと行番号、および (関連する場合は) シャドウイングされた否定または継承された親ディレクトリ ルールを説明する平易なメモが表示されます。これは、わかりにくい .gitignore を、コミットする前に実際に理解できるものに変えるための詳細です。