概要
- Git では、無視するファイルを3つのレベルで設定可能
- .gitignore、 .git/info/exclude、 ~/.config/git/ignore の3種類のファイルを利用
- 各ファイルごとに用途やスコープが異なる
- グローバルな無視ファイルは カスタマイズ 可能
- git check-ignore -v コマンドで無視の状態を確認
Gitでファイルを無視する3つの方法
-
.gitignore
- プロジェクトルートに配置する標準的な無視ファイル
- リポジトリに コミット され、他の開発者と共有
- 追加したファイルやパターンは 全員に適用
-
.git/info/exclude
- 各リポジトリの .gitディレクトリ 内に存在
- Git管理外 のため、他の開発者と共有されない
- 個人の作業用ファイルや一時ファイルの無視に最適
-
~/.config/git/ignore
- ユーザーのホームディレクトリ配下に存在
- 全リポジトリ共通 で適用されるグローバルな無視ファイル
- 例:macOSの .DS_Store など、全体で無視したいファイルに便利
グローバル無視ファイルのカスタマイズ
- デフォルト以外のファイルをグローバル無視ファイルに設定可能
- 設定コマンド例:
git config --global core.excludesFile ~/.gitignore_global
- 元に戻す場合:
git config --global --unset core.excludesFile
- 設定コマンド例:
どのファイルで無視されているか確認する方法
- git check-ignore -v [ファイル名] コマンドで確認可能
- 例:
.DS_Storeがどの設定で無視されているか表示 - 出力には、無視している ファイル名・行番号・パターン が表示
- どのファイルでも無視されていない場合は 出力なし
- 例:
具体例
- .gitignore で無視されている場合の出力例
.gitignore:1:.DS_Store .DS_Store
- .git/info/exclude で無視されている場合の出力例
.git/info/exclude:7:.DS_Store .DS_Store
- ~/.config/git/ignore で無視されている場合の出力例
/Users/nelson/.config/git/ignore:2:.DS_Store .DS_Store
- カスタムグローバルファイル で無視されている場合の出力例
/Users/nelson/.gitignore_global:1:.DS_Store .DS_Store
まとめ
- 用途や共有範囲 に応じて、適切な無視ファイルを選択
- 個人・プロジェクト・全体 で柔軟に使い分けることが重要
- git check-ignore -v でトラブルシューティングが容易