.git/info/exclude について正しく説明しているものはどれですか?
解説
正解は「そのローカルリポジトリにのみ適用される、他の開発者には共有されない無視ルールを書くファイル」です。.git/info/exclude は .git ディレクトリ配下にあるため、そもそもリポジトリにコミットされず、git clone しても他人の環境には伝播しません。書き方は .gitignore と同じですが、適用範囲が「自分のそのクローンだけ」という点が決定的に違います。他の選択肢について、共有される無視ルールは .gitignore、既に追跡済みのファイルを外すのは git rm --cached、全リポジトリ共通のグローバル設定は core.excludesFile(通常 ~/.gitignore_global)の役割で、それぞれ別物です。3種類のignoreを使い分ける判断基準Gitの無視ルールには階層があり、用途で使い分けるのがプロの定石です。.gitignore: プロジェクト全員が無視すべきもの(node_modules/、ビルド成果物など)。コミットして共有する.git/info/exclude: 自分のローカル環境でだけ無視したいもの(個人用メモ、検証用スクリプトなど)core.excludesFile(グローバル): 全リポジトリ共通で無視したいもの(.DS_Store、エディタのスワップファイルなど)なぜ個人的なファイルを .gitignore に書いてはいけないのか「自分だけが生成する一時ファイル」を .gitignore に足すと、チーム全員のリポジトリにそのルールが混入します。他人にとって無意味なエントリでリポジトリが汚れるだけでなく、無視ルールの意図が曖昧になりレビューコストも増えます。こういうときに .git/info/exclude を使うと、自分の手元だけに閉じた除外ができてクリーンです。追跡済みファイルには効かないという落とし穴ignore系のファイルはすべて「未追跡ファイルを追跡対象に入れない」ためのものです。一度 git add してコミットされたファイルは、後からルールを書いても無視されません。その場合は以下のように明示的に追跡を外す必要があります。git rm --cached path/to/fileこの挙動を知らずに「ignoreに書いたのに効かない」とハマるのは初学者がよく通る道です。ignoreは追跡開始のフィルタであって、追跡停止の機能ではないと覚えておくと混乱しません。