Git が指定したファイルを無視しないのはなぜですか? 質問する

Git が指定したファイルを無視しないのはなぜですか? 質問する

に次の行を追加しました.gitignore:

sites/default/settings.php

しかし、入力するとgit status、ファイルはステージングされていないファイルとして表示されます。

何が問題なのでしょう? 他のパターンはすべて正常に動作します。

ベストアンサー1

.gitignoreが作業ディレクトリのルートにあることを確認し、そのディレクトリで を実行しgit status、ステータス出力からファイルへのパスをコピーし.gitignoreて に貼り付けます。

それでも問題が解決しない場合は、ファイルがすでに Git によって追跡されている可能性があります。これは、の出力で確認できますgit status。ファイルが「追跡されていないファイル」セクションにリストされていない場合は、すでに Git によって追跡されており、ファイルのルールは無視されます.gitignore

Git でファイルを無視する理由は、それらのファイルがリポジトリに追加されないようにするためです。無視したいファイルを以前に追加した場合、そのファイルは Git によって追跡され、それに一致する無視ルールはスキップされます。Git がこれを実行するのは、ファイルがすでにリポジトリの一部であるためです。

実際にファイルを無視するには、そのファイルの追跡を解除してリポジトリから削除する必要があります。 を使用すると、これを行うことができますgit rm --cached sites/default/settings.php。これにより、ファイルを物理的に削除することなく ( が行うことです--cached)、リポジトリからファイルが削除されます。その変更をコミットすると、ファイルはリポジトリから削除され、無視することが適切に機能するはずです。

@display-name が指摘したように下に場合によっては、インデックスを適切に再構築するために、git add .の後にを実行する必要があります。git rm --cached

おすすめ記事