.gitignoreとは
この記事の結論
- .gitignore とは、Gitに記録させないファイルを書いておく設定ファイルです。リポジトリの一番上に置くのが基本です。
node_modules/のような自動で作られるフォルダや、APIキーの入った.envを書いておけば、うっかりコミットするのを防げます。- すでにコミットしたファイルには効きません。Git公式マニュアルのとおり、
git rm --cached ファイル名で記録から外してから .gitignore に書きます。
ぎっといぐのあ/.gitignore
Gitで記録しない(追跡しない)ファイルやフォルダを指定する設定ファイルのことです。
最終更新: 2026-10-23
.gitignoreとは何か
.gitignore は、Gitに無視させたいファイルの名前やパターンを1行に1つずつ書いておくテキストファイルです。読み方は「ぎっといぐのあ」。先頭のドットは、macOSやLinuxで隠しファイルとして扱われる印です。
gitignore の公式マニュアル(git-scm.com)は、このファイルを「意図的に追跡しないファイルを指定する」ものと説明し、あわせて「すでにGitが追跡しているファイルには影響しない」と書いています。後者がつまずきやすい点です。
書き方の基本ルール
| 書き方 | 意味 | 例 |
|---|---|---|
| ファイル名 | その名前のファイルをどの階層でも無視する | .DS_Store |
末尾に / | フォルダだけに当てはめる | node_modules/ |
先頭に / | .gitignore と同じ階層だけに当てはめる | /dist |
* | 任意の文字列(/ を除く) | *.log |
** | 任意の階層 | logs/**/*.tmp |
先頭に ! | 直前までの指定を打ち消して記録対象に戻す | !.env.example |
先頭に # | コメント | # ビルド結果 |
よく書く項目の例
# 依存パッケージ(npm install で作り直せる)
node_modules/
# ビルド結果
dist/
# 秘密の設定(ひな形だけは残す)
.env
.env.local
!.env.example
# OSやエディタが作るファイル
.DS_Store
.vscode/
# ログ
*.log
言語やフレームワークごとのひな形は、GitHubが公開している github/gitignore にまとまっています。新しくプロジェクトを作るときは、ここから合うものを写してから足し引きすると漏れが減ります。
書いたのに効かないとき
いちばん多い原因は、そのファイルがすでにコミットされていることです。公式マニュアルは、追跡中のファイルを外すには git rm --cached でインデックスから取り除き、そのうえで .gitignore に名前を足すよう案内しています。
| 症状 | 原因 | 直し方 |
|---|---|---|
| 書いたファイルが git status に出続ける | すでに追跡されている | git rm --cached ファイル名 → コミット |
| フォルダごと外したい | 同上 | git rm -r --cached フォルダ名 → コミット |
| どの行で無視されているか分からない | パターンが広すぎる・打ち消しが効いていない | git check-ignore -v ファイル名 で該当行を表示 |
git rm --cached は記録から外すだけで、手元のファイルは消えません。ただし、APIキーなどをすでにプッシュしてしまった場合、過去の履歴には残っています。その鍵は無効にして作り直してください。環境変数とAPIキーの扱いも参考になります。
関連記事
よくある質問
Q1. .gitignoreとは何ですか?
Gitで記録しないファイルやフォルダを指定するテキストファイルです。1行に1つ、ファイル名やパターンを書きます。リポジトリの一番上に置くのが基本です。
Q2. .gitignoreに書いたのに無視されないのはなぜですか?
そのファイルがすでにコミットされて追跡されているためです。git rm --cached ファイル名 で記録から外してコミットすると、それ以降は無視されます。手元のファイルは消えません。
Q3. .envは.gitignoreに入れるべきですか?
入れてください。.env にはAPIキーなどの秘密の値が入るため、リポジトリに入れると共有先で誰でも読めてしまいます。値を空にしたひな形の .env.example だけを記録し、!.env.example で対象に戻すのが一般的です。
Q4. .gitignoreはどこに置けばいいですか?
リポジトリの一番上のフォルダに置くのが基本です。サブフォルダに置くと、そのフォルダ以下だけに当てはまります。