.env を無視して .env.example を残すには?

ローカルの .env を使うプロジェクトでは、実際の値をバージョン管理の外に置き、プレースホルダーだけを含む確認済みの .env.example を共有できます。広い範囲を除外する前にフレームワークの規約を確認してください。

1. ローカル値を除外して例を残す

ルートの .gitignore に次のルールを置きます。ルートの .env と .env. で始まるファイルを除外し、.env.example を再び対象にします。service.env のような名前や下位ディレクトリのファイルには適用されません。

コミット前に .env.example の内容を確認してください。例という名前でも公開して安全とは限りません。値はプレースホルダーにし、必要な変数を説明します。

/.env
/.env.*
!/.env.example

2. 3つのケースを確認する

未追跡の .env、.env.local、.env.example を用意し、それぞれの一致ルールを確認します。

git check-ignore -v -- .env .env.local .env.example

!/.env.example は例を再び対象にするルールです。状態表示では例だけが現れ、ローカル値の2ファイルは現れないはずです。除外された親ディレクトリや後のルールで結果が変わることもあります。

git status --short --untracked-files=all -- .env .env.local .env.example

! を使っても無視されたディレクトリ内のファイルを残せないのはなぜ?

3. すでに追跡されている値に対処する

ローカル値のファイルが追跡済みかを確認します。

git ls-files -- .env .env.local

パスが表示されたら追跡済みファイルの記事に従い、共同作業者と調整してください。.gitignore の追加では過去のコミットは消えません。認証情報が漏れた場合は、まず失効またはローテーションを行い、GitHub の機密データ対処手順を参照します。現在のファイルを削除するだけでは履歴は消えません。

Git がすでに追跡しているファイルを無視するには?

正確な動作や詳細は、公式の資料を参照してください。 Git のドキュメント · Git の公式 FAQ · GitHub の機密データ対処手順