チームの .gitignore を汚さず自分だけファイルを無視する
開発環境
Git
知識
共有の .gitignore を変えずに自分だけファイルを無視する手段は2つ。
使い分け
- リポジトリ単位: リポジトリ内の除外設定ファイル(.git 配下の info/exclude)に .gitignore と同じ書式で追記する。.git 配下なのでコミットされずチームに見えない。「このリポジトリでだけ無視したい」に最適。
- 全リポジトリ共通: グローバル除外ファイル(core.excludesFile 設定先)に書く。OS 固有ファイル(.DS_Store 等)向け。ここに固有ディレクトリ名を入れると他リポジトリの正規ファイルまで無視するリスクがある。
worktree での挙動
- info/exclude は共有側(common dir)に置かれるため、全 worktree に自動で効く。worktree ごとに書く必要はない。逆に「特定 worktree だけ無視」は素直な仕組みがない。
落とし穴
- 末尾スラッシュ付きパターンはディレクトリにしかマッチしない。未生成パスをファイルとして check-ignore すると不一致(exit 1)になり、ディレクトリとして問い合わせると正しくマッチする。
- 一度コミット済みのファイルには exclude も gitignore も効かない。
- エディタは既定で .git 配下をツリー・検索から除外する。編集はパス直接指定で開けばよい。