.gitignoreの書き方 — 言語・フレームワーク別の設定ガイド
.gitignoreはGitで追跡しないファイル・フォルダを指定するファイルです。node_modules/やbuild/などをリポジトリに含めないようにすることで、不要なファイルのコミット・プッシュを防ぎ、チーム開発を円滑にします。
.gitignoreの基本ルール
.gitignoreでは1行1パターンでIgnoreするパスを指定します。末尾に/をつけるとディレクトリを指定、先頭に!をつけると例外(追跡する)になります。*は任意の文字(スラッシュ除く)、**は任意のパスにマッチします。#から始まる行はコメントです。一度追跡してしまったファイルはgit rm --cachedで追跡を解除する必要があります。
node_modulesを.gitignoreに追加する理由
node_modulesにはnpm/yarnでインストールした依存パッケージが入っており、数万〜数十万ファイルになることがあります。package.jsonとpackage-lock.jsonがあれば誰でもnpm installで再現できるため、gitに含める必要はありません。誤ってコミットするとリポジトリが巨大になりpushが遅くなります。
フレームワーク別の代表的なIgnoreパターン
Next.jsは.next/(ビルド成果物)とout/(静的エクスポート)を除外します。Unityは/Library/・/Temp/・/Build/を除外し、アセット(/Assets/)とProjectSettingsはコミット対象です。Goはバイナリ(*.exe・*.dll)とvendor/を除外します。Rustは/target/のみで十分です。
グローバル.gitignoreで個人設定を分離する
macOSの.DS_StoreやJetBrains IDEの.ideaフォルダなど、個人の環境固有のファイルはリポジトリの.gitignoreではなくグローバル.gitignoreで管理するのがベストプラクティスです。git config --global core.excludesfile ~/.gitignore_globalで設定できます。チーム全員のIDEが同じとは限らないため、IDE固有パターンをリポジトリに含めるとコンフリクトの原因になります。