.gitignoreとは

この記事の結論

  • .gitignore とは、Gitに記録させないファイルを書いておく設定ファイルです。リポジトリの一番上に置くのが基本です。
  • node_modules/ のような自動で作られるフォルダや、APIキーの入った .env を書いておけば、うっかりコミットするのを防げます。
  • すでにコミットしたファイルには効きません。Git公式マニュアルのとおり、git rm --cached ファイル名 で記録から外してから .gitignore に書きます。

ぎっといぐのあ/.gitignore

Gitで記録しない(追跡しない)ファイルやフォルダを指定する設定ファイルのことです。

最終更新: 2026-10-23

01

.gitignoreとは何か

.gitignore は、Gitに無視させたいファイルの名前やパターンを1行に1つずつ書いておくテキストファイルです。読み方は「ぎっといぐのあ」。先頭のドットは、macOSやLinuxで隠しファイルとして扱われる印です。

gitignore の公式マニュアル(git-scm.com)は、このファイルを「意図的に追跡しないファイルを指定する」ものと説明し、あわせて「すでにGitが追跡しているファイルには影響しない」と書いています。後者がつまずきやすい点です。

02

書き方の基本ルール

パターンの書き方
書き方意味例
ファイル名その名前のファイルをどの階層でも無視する.DS_Store
末尾に /フォルダだけに当てはめるnode_modules/
先頭に /.gitignore と同じ階層だけに当てはめる/dist
*任意の文字列(/ を除く)*.log
**任意の階層logs/**/*.tmp
先頭に !直前までの指定を打ち消して記録対象に戻す!.env.example
先頭に #コメント# ビルド結果
03

よく書く項目の例

# 依存パッケージ(npm install で作り直せる)
node_modules/

# ビルド結果
dist/

# 秘密の設定(ひな形だけは残す)
.env
.env.local
!.env.example

# OSやエディタが作るファイル
.DS_Store
.vscode/

# ログ
*.log

言語やフレームワークごとのひな形は、GitHubが公開している github/gitignore にまとまっています。新しくプロジェクトを作るときは、ここから合うものを写してから足し引きすると漏れが減ります。

04

書いたのに効かないとき

いちばん多い原因は、そのファイルがすでにコミットされていることです。公式マニュアルは、追跡中のファイルを外すには git rm --cached でインデックスから取り除き、そのうえで .gitignore に名前を足すよう案内しています。

効かないときの確認
症状原因直し方
書いたファイルが git status に出続けるすでに追跡されているgit rm --cached ファイル名 → コミット
フォルダごと外したい同上git rm -r --cached フォルダ名 → コミット
どの行で無視されているか分からないパターンが広すぎる・打ち消しが効いていないgit check-ignore -v ファイル名 で該当行を表示

git rm --cached は記録から外すだけで、手元のファイルは消えません。ただし、APIキーなどをすでにプッシュしてしまった場合、過去の履歴には残っています。その鍵は無効にして作り直してください。環境変数とAPIキーの扱いも参考になります。

05

関連記事

06

よくある質問

Q1. .gitignoreとは何ですか?
Gitで記録しないファイルやフォルダを指定するテキストファイルです。1行に1つ、ファイル名やパターンを書きます。リポジトリの一番上に置くのが基本です。

Q2. .gitignoreに書いたのに無視されないのはなぜですか?
そのファイルがすでにコミットされて追跡されているためです。git rm --cached ファイル名 で記録から外してコミットすると、それ以降は無視されます。手元のファイルは消えません。

Q3. .envは.gitignoreに入れるべきですか?
入れてください。.env にはAPIキーなどの秘密の値が入るため、リポジトリに入れると共有先で誰でも読めてしまいます。値を空にしたひな形の .env.example だけを記録し、!.env.example で対象に戻すのが一般的です。

Q4. .gitignoreはどこに置けばいいですか?
リポジトリの一番上のフォルダに置くのが基本です。サブフォルダに置くと、そのフォルダ以下だけに当てはまります。