.gitignoreは、プロジェクトによってはリモートリポジトリで変更履歴をとっているので、個人的に省きたいファイルやフォルダを書き込むのが難しいという場面がありませんか?
特に昨今では自分用に最適化したAI関連の設定ファイル.claude/や、copilot-instructions.mdをプロジェクトのルートディレクトリに置きたい機会が増えているのではないでしょうか?
そういう時に便利な .gitignore_global と .git/info/excludeを紹介します。
変更履歴に残り続けていても気にならない人、またはプロジェクトによってリモートリポジトリの追跡対象に.gitignoreが入っていないプロジェクトでは今回の内容はあまり参考にならないかもしれません。
使用しているPC上で、常に追跡を逃れたい…そんな時は~/.gitignore_global
新しいPCを使い出した時はこの~/.gitignore_globalに書いておけば、そのPC内ではいちいちプロジェクトファイルを作ったときに.gitignoreを書かなくて済むようになります。
macだと.DS_Storeや、AIエージェント関係のものは常にGitの追跡を逃れさせたいのではないでしょうか?そんな時には私は以下のように書いています。
.DS_Store
copilot-instructions.md
CLAUDE.md
claude-log/
.claude/
.vscode/
.serena/
プロジェクト単位で.gitignoreを使わず追跡を逃れる定義をしたい…そんな時は.git/info/exclude
プロジェクト単位で追跡対象外にしたいディレクトリやファイルを指定する場合、有名なのは.gitignoreに定義する方法ですが、プロジェクトによっては.gitignoreがリモートリポジトリの追跡対象で、個人で.gitignoreを変更すると、変更履歴に載ってしまって邪魔になる…ということありますよね。
そんな時はプロジェクトファイルの.git/info/excludeに書き込んで定義しましょう。
このファイルは.git以下にあり、もともとGit追跡対象外なので、変更しても変更履歴に載りません。
.DS_Store
copilot-instructions.md
CLAUDE.md
claude-log/
.claude/
.vscode/
.serena/