.gitignore と .env
このページのゴール:上げてはいけないファイルがGitHubから除外されている
所要時間の目安: 15分動作確認日: 2026-08-05⚠️ このページは、このサイトで一番強い警告です。
上げてはいけないものは、主にこの3つです。
.envなどの環境変数ファイル(APIキー・パスワードの置き場所)- 顧客情報・個人情報を含むファイル
node_modules/のような巨大な自動生成フォルダ(危険ではないが不要)
そして、最重要のルールがこれです。
⚠️ 一度 push したものは、後で消しても履歴に残り続けます。
GitHub上で「削除」しても、過去のcommitをたどれば中身が見えてしまいます。
だから「上げてから消す」は通用しません。「最初から上げない」がすべてです。
それを仕組みで保証するのが、これから作る .gitignore です。
手順
1. 練習用リポジトリに移動する
5-5で作ったフォルダを使います。
cd ~/dev/hello-github
2. 練習用の .env を作る
中身は練習用の偽物のキーです。本物のキーは絶対に書かないでください。
echo "API_KEY=test123" > .env
3. 危険な状態を目で見る
git status
Untracked files:(まだ記録していないファイル)の下に .env が出ています。
これが危険な状態です。このまま git add . すると、.env も上がってしまいます。
4. .gitignore を作って開く
まず空のファイルを作り、テキストエディタで開きます。
touch .gitignore
open -e .gitignore
5. 除外リストを貼り付けて保存する
開いた画面に次の内容を貼り付け、⌘S で保存して閉じます。
.env .env.local node_modules/ .DS_Store
「ここに書いた名前のファイルは、Gitは存在しないものとして扱え」というリストです。
6. 隠せたことを確認する
git status
一覧から .env が消え、.gitignore だけが表示されていれば成功です。
もう git add . をしても、.env は二度と含まれません。
7. .gitignore 自体はcommitして送る
除外リスト自体はプロジェクトの一部なので、GitHubに含めます。
git add .
git commit -m ".gitignoreを追加"
git push
✅ ここまで出来たらOK
git status
期待される表示:.env が一覧に出ないまま、nothing to commit, working tree clean と表示される
そうならない場合 → エラー逆引きページ を見てください。
📖 出てきた言葉
環境変数environment variable / カンキョウヘンスウ
アプリの動作に必要な設定値を、コードの外に置いたもの。.env ファイルに書くことが多い。
コードと秘密を分けられるから、コードを公開しても秘密は漏れない。
APIキーAPI key / エーピーアイキー
外部サービスを呼び出す時の合鍵になる文字列。持っている人は誰でもあなたとして使える。 漏れたら即悪用される。クレジットカード番号と同じ扱いで守る。
.gitignore.gitignore / ギットイグノア
Gitに「これは記録しないで」と伝える除外リスト。リポジトリの一番上の階層に置く。
これがあるから、.env を手元に置いたまま安全にpushできる。
すでに .env を push してしまった
⚠️ 最優先は履歴の削除ではなく、キーの無効化です。 そのキーを発行したサービスの管理画面で、すぐに無効化・再発行してください。 履歴からの完全削除は難しい作業です。Claudeに状況を貼って相談してください。
.gitignore に書いたのに .env が表示され続ける
先にcommitしてしまったファイルは、後から .gitignore に書いても記録が続きます。
git rm --cached .env で記録の対象から外し、commitし直してください。
ファイル本体は手元に残るので安心してください。
今回のリポジトリは private なのに、なぜここまで警告する?
private でも、招待した人や連携したサービスからは見えます。 そして後から public に変えた瞬間、履歴ごと全世界に公開されます。 「privateだから大丈夫」を前提にしない癖を、今のうちに付けてください。