💡 この記事でわかること
- .gitignoreとは何か、なぜ必要なのか
- .gitignoreファイルの作り方・書き方
- よく除外されるファイル・フォルダの具体例
- すでにcommitしてしまったファイルをあとから除外する方法
- .gitignoreが効かないときの確認ポイント
👉 Gitの基本的な使い方(add・commit・push)についての記事はこちら
1. .gitignoreとは?
.gitignoreとは、
👉 指定したファイルやフォルダを、Gitの管理対象(commitの対象)から除外するための設定ファイルです。
プロジェクトの中には、Gitで履歴を残す必要がない(むしろ残すべきではない)ファイルがいくつもあります。
- パスワードやAPIキーなどの秘密情報が入った設定ファイル
- npmなどでインストールした大量のライブラリ(node_modulesフォルダなど)
- OSやエディタが自動生成する管理ファイル(.DS_Storeなど)
💡 こうしたファイルを.gitignoreで指定しておくと、git add .のように一括で変更を追加しても、対象外として自動的にスキップされます。秘密情報を誤ってGitHubなどに公開してしまう事故や、無関係なファイルで差分が見づらくなることを防げます。
2. .gitignoreファイルの作り方・書き方
ファイルを作成する
プロジェクトのルート(一番上の階層、.gitフォルダがある場所)に、.gitignoreという名前のファイルを作成します。
touch .gitignore👉 先頭の「.(ドット)」を忘れないようにしましょう。VS CodeのExplorerで作成する場合も、ファイル名を「.gitignore」と入力すればOKです(拡張子はありません)。
基本の書き方
除外したいファイル名やフォルダ名を、1行に1つずつ書いていきます。
node_modules
.env
.DS_Store主な記法は次の通りです。
| 書き方 | 意味 |
|---|---|
node_modules | その名前のファイル・フォルダをどの階層でも除外 |
/dist | 先頭に/を付けると、ルート直下のものだけを対象にする |
*.log | ワイルドカード(*)で「拡張子が.logのファイルすべて」を指定 |
!important.log | 先頭に!を付けると、除外対象から例外的に除く(再び追跡対象にする) |
# コメント | #から始まる行はコメント扱いになり無視される |
💡 フォルダを指定する場合、末尾に/を付けると「フォルダのみ」を対象にできます(例: dist/)。付けない場合は、同名のファイルも対象に含まれます。
3. よく除外されるファイル・フォルダの例
プロジェクトの種類によって多少異なりますが、代表的なものは次の通りです。
- node_modules/:npm installで生成される、ライブラリ本体が入った巨大なフォルダ。package.jsonがあれば誰でも再現できるためGit管理は不要
- .env:APIキーやデータベースのパスワードなど、秘密情報を書いた環境変数ファイル
- .DS_Store:Macが各フォルダに自動生成する管理用ファイル。開発内容とは無関係
- dist/・build/:ビルドによって自動生成される成果物フォルダ
- .vscode/:VS Codeの個人的なエディタ設定。チームで共有したい設定だけ例外指定することもある
👉 GitHubには、言語やフレームワークごとに定番の.gitignoreテンプレートを集めた公式リポジトリ(github/gitignore)があります。ゼロから書かなくても、使っている技術に近いテンプレートをコピーして使うのが効率的です。
4. すでにcommitしてしまったファイルを除外する
👉 .gitignoreは「まだ一度もcommitしていないファイル」にしか効きません。すでにGitの管理下に入ってしまっているファイルは、.gitignoreに追記しただけでは除外されず、そのまま追跡され続けます。
この場合は、Gitの管理からファイルを切り離す操作が別途必要です。
git rm --cached .env
git commit -m "Remove .env from tracking"💡 --cachedオプションを付けることで、パソコン上の実ファイルは残したまま、Gitの管理対象からだけ外せます(オプションを付けずにgit rmだけ実行すると、実ファイル自体が削除されてしまうので注意)。フォルダごと除外したい場合は-rも付けます。
git rm -r --cached node_modules⚠️ すでにpush済みで、かつ.envのような秘密情報が含まれていた場合は、この操作だけでは不十分です。過去のcommit履歴自体に情報が残ってしまっているため、該当のパスワードやAPIキーはすみやかに無効化・再発行することをおすすめします。
5. .gitignoreが効かないときの確認ポイント
- すでにcommit済みのファイルではないか:上記4の手順で
git rm --cachedが必要です - .gitignoreの保存場所は正しいか:基本的にはプロジェクトのルート(
.gitフォルダと同じ階層)に置きます - ファイル名のタイプミスはないか:大文字・小文字や、末尾のスペースなどを確認してください
今どのファイルが除外設定によってスキップされているかは、次のコマンドで確認できます。
git status --ignoredまとめ
今回はGitの.gitignoreについて解説しました。
- .gitignoreは、指定したファイル・フォルダをGitの管理対象から除外する設定ファイル
- node_modulesや.envなど、共有不要・秘密情報を含むファイルは必ず除外する
- すでにcommit済みのファイルは
git rm --cachedで管理から切り離す必要がある
プロジェクトを作ったら、最初のcommitをする前に.gitignoreを用意しておく習慣をつけると、あとから慌てて秘密情報を削除する手間がなくなります。ぜひ実際に手を動かして試してみてください。