VS Code、IntelliJ、Eclipse 用 IDE ファイルの .gitignore
VS Code、IntelliJ IDEA、Eclipse 向けの .gitignore で IDE 設定ファイルを管理。チームで共有すべきものと個人的に保持すべきものを解説します。
詳細な説明
IDE はマージコンフリクトやリポジトリの肥大化を引き起こすプロジェクト設定ファイルを生成します。課題は、チームの一貫性のために共有すべきファイルと厳密に個人的なファイルがあることです。最も人気のある3つの IDE についての包括的なガイドです。
VS Code (.vscode/ ディレクトリ):
ワイルドカードと否定パターンを使って選択的に設定を共有します:
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/tasks.json
settings.json(共有フォーマットルール)、extensions.json(推奨拡張機能)、launch.json(デバッグ設定)、tasks.json(ビルドタスク)をコミットします。それ以外はすべて無視します:.vscode/history/、*.code-workspace、.browse.c_cpp.db* のような IntelliSense キャッシュなどです。
IntelliJ IDEA / JetBrains IDE (.idea/ ディレクトリ):
最もシンプルなアプローチはすべてを無視することです:
.idea/
*.iml
*.iws
.idea/workspace.xml はセッションごとに変更され、無意味な差分の最大の原因です。*.iml ファイルには SDK や JAR へのローカル絶対パスが含まれます。コードスタイルを共有したい場合は、選択的アプローチを使用します:.idea/* の後に !.idea/codeStyles/ と !.idea/inspectionProfiles/ を指定します。多くのチームは IDE 非依存の .editorconfig でスタイルを共有することを好みます。
Eclipse (.project, .classpath, .settings/):
.project
.classpath
.settings/
bin/
.metadata/
*.launch
Eclipse はプロジェクトルートに設定を散在させます。.classpath にはマシンごとに異なる絶対 JDK パスが含まれます。.settings/ にはワークスペース設定が保存されます — 否定パターンを使って .settings/org.eclipse.jdt.core.prefs を選択的にコミットし、コンパイラ設定を共有するチームもあります。
グローバル gitignore アプローチ:
IDE の選択は個人的なものなので、最もクリーンな解決策は IDE パターンを各開発者のグローバル gitignore(git config --global core.excludesFile ~/.gitignore_global)に配置することです。こうすれば、Vim ユーザーが IntelliJ のパターンを管理する必要がなく、VS Code ユーザーが Eclipse のエントリを必要としません。
既にコミットされた IDE ファイルの削除: .idea/ や .vscode/ がコミットされている場合、git rm -r --cached .idea/ で追跡を解除できます(ローカルファイルは削除されません)。次回の pull で全員の IDE 設定がリセットされるため、事前にチームに通知してください。
ユースケース
VS Code、IntelliJ、Eclipse を使用するクロスファンクショナルチームが、IDE 設定のコンフリクトを防ぎつつ有用なデバッグ・フォーマット設定を共有する統一的な .gitignore 戦略を必要としています。