グローバル .gitignore 設定ガイド
すべてのリポジトリに適用される OS やエディタファイル用のグローバル .gitignore の設定方法。設定手順、一般的なパターン、グローバルとプロジェクトレベルの使い分けを解説します。
詳細な説明
グローバル gitignore は、マシン上のすべての git リポジトリに適用される個人的な無視ファイルです。プロジェクトに関係なくコミットすべきでないオペレーティングシステムのアーティファクトやエディタ固有のファイルを配置するのに最適な場所です。
グローバル gitignore の設定:
git config --global core.excludesFile ~/.gitignore_global
これにより、各プロジェクトの .gitignore に加えて ~/.gitignore_global(任意の名前で構いません)を git が読み込むようになります。このファイルのパターンは全体に適用されます。
推奨グローバルパターン:
macOS:
.DS_Store
.AppleDouble
.LSOverride
._*
.Spotlight-V100
.Trashes
Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
Linux:
*~
.directory
.Trash-*
エディタと IDE:
.idea/
.vscode/
*.swp
*.swo
*~
*.sublime-workspace
*.sublime-project
グローバルとプロジェクトレベルの使い分け:
グローバル gitignore に入れるもの:
- オペレーティングシステムファイル(
.DS_Store、Thumbs.db)— 個人的な環境アーティファクトであり、プロジェクトの関心事ではありません。 - エディタ/IDE ファイル(
.idea/、.vscode/)— 特にエディタの選択が多様なチームで。すべてのエディタのパターンをプロジェクトの.gitignoreに入れると煩雑になります。
プロジェクト .gitignore に入れるもの:
- 言語固有のアーティファクト(
node_modules/、target/、__pycache__/)— プロジェクトの関心事であり、リポジトリに文書化すべきです。 - フレームワークビルド出力(
.next/、dist/)— すべてのコントリビューターが理解すべき重要なもの。 - 環境ファイル(
.env)— セキュリティに関わるパターンはプロジェクトファイルに含め、すべてのコントリビューターが恩恵を受けられるようにします。
チーム連携: グローバル gitignore ファイルは個人的なもので、git 経由で共有されません。新しいチームメンバーがマシンを正しく設定できるように、プロジェクトの CONTRIBUTING.md に推奨設定を記載してください。
動作確認: git config --global core.excludesFile でパスを確認し、git check-ignore -v <filename> で特定のファイルが無視されているか、どのルールが適用されているかを確認できます。
ユースケース
30以上のリポジトリで作業する開発者が、すべてのプロジェクトに .DS_Store や .idea/ パターンを追加するのをやめて、単一のマシン全体の無視ファイルを設定したいと考えています。