.env をリポジトリに入れてはいけないのはなぜですか。
DBのパスワードやAPIキー、アプリケーションキーが含まれるためです。厄介なのは、あとから削除しても Git の履歴に残ること。ファイルを消すだけでは対処になりません。
面接官が見ているのは前提の補強。
これは「環境ごとに違う設定値の扱い方として正しいのはどれですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- DBパスワードやAPIキーが含まれ、一度コミットすると履歴に残るから
その通りです。漏れた場合はファイルを消すだけでは足りず、鍵の再発行が必要になります。 - 環境ごとに内容が違うのでコンフリクトするから
それも起きますが、本質は中身が秘密情報であることです。 - Laravel が自動生成するので不要だから
自動生成されるのは .env.example です。.env は自分で用意します。 - ファイルサイズが大きいから
サイズは関係ありません。
面接官は何を見ているか
- 認証情報が含まれることを挙げた
- リポジトリを見られる全員に漏れると言えた
- 一度コミットすると履歴に残る点に触れた
模範解答
DBのパスワード、APIキー、アプリケーションキーなどが含まれるからです。リポジトリにアクセスできる全員に渡ることになりますし、公開リポジトリなら世界中に公開されます。厄介なのは、後から削除しても Git の履歴には残ることです。漏れた場合はファイルを消すだけでは足りず、鍵そのものを再発行する必要があります。