1. 一致ルールの定義元を調べる
リポジトリのルートで、path/to/file を実際の未追跡ファイルのパスに置き換えて実行します。
git check-ignore -v -- path/to/file詳細出力には定義元のファイル、行番号、パターンが表示されます。定義元はプロジェクトの .gitignore、.git/info/exclude、グローバル除外ファイルなどです。! は再び対象にするルールです。出力がない場合は追跡済みの可能性もあるので、別途確認してください。
2. グローバル除外ファイルの設定を調べる
有効な core.excludesFile の値と、その値を定義した設定ファイルを確認します。
git config --show-origin --get core.excludesFile出力がなく終了コードが1なら、この設定が未指定という意味であり、グローバル除外が無効とは限りません。Git は既定の $XDG_CONFIG_HOME/git/ignore も参照します。XDG_CONFIG_HOME が未設定または空なら $HOME/.config/git/ignore を使います。まず check-ignore が報告した定義元を確認してください。
3. 適切なルールを変更して再確認する
出力を基に変更先を決めます。共有するプロジェクトルールは .gitignore、このリポジトリだけの個人用ルールは .git/info/exclude、複数リポジトリで使う個人用ルールはグローバル除外ファイルに置きます。グローバルルールの変更は他のリポジトリにも影響するので、1つのパスのために設定全体を削除しないでください。 プロジェクトの .gitignore は .git/info/exclude や core.excludesFile より優先されます。親ディレクトリが除外されていなければ、プロジェクトの例外で低い優先順位の除外を上書きできます。変更後、実際のパスで再確認します。
git check-ignore -v -- path/to/file 正確な動作や詳細は、公式の資料を参照してください。 Git のドキュメント · git check-ignore の公式ドキュメント · Git 設定の公式ドキュメント