ファイルを作成.gitignore
しましたが、ステージングされていない変更領域に表示され続けます。
これはプロジェクト (レポ) の一種の構成ファイルであるため、git がこれを自動的に処理しないのはなぜですか? デフォルトでリポジトリの一部になることはできませんか? なぜそのような動作が設計に含まれているのでしょうか? そのような設計のユースケースはありますか?
そのファイルの内容は、プロジェクトのコードが変更されると、おそらく変更する必要があるためです。つまり、プロジェクトを構成するファイルとともに、.gitignore ファイル自体のバージョン履歴を保存できるようにする必要があります。つまり、通常の git コマンドを使用して、そのファイルをコミットするタイミングを制御します。
したがって、git が行うことは他にありません。いずれにせよ、.gitignore のコミットを適切に管理するには、git コマンドを使用する必要があります (編集するたびに .gitignore を暗黙的にコミットするのは、他のファイルが変更されるとすぐに暗黙的にコミットするよりも意味がありません)。ファイルを追跡するすべてのユースケースをカバーしています。したがって、git が .gitignore を特別に扱う必要はありません。
他の回答に加えて...
無視されたファイルをリポジトリの一部として追跡し、それをチェックアウトする他のユーザーと共有する場合、.gitignore
ファイルは他のファイルと同様に追跡 (チェックインおよびバージョン管理) する必要があります。
無視されたファイルのリストをチェックインしてバージョン管理したくない場合.git/info/exclude
は、リポジトリのルートにファイル名を追加します。そのファイルはチェックインされていないため、それに対する変更はステージングされていない変更として表示され続けません。そのファイルは「デフォルトでリポジトリの一部」ですが、作業ツリー内のファイルのようにバージョン管理されていません。
.gitignore
ファイルはリポジトリに大混乱をもたらす可能性があり、それらを自動的にチェックインすると悲惨な結果になる可能性があります。