🐈

【Rails】環境変数ファイルで起きたミス

2023/12/20に公開

VScodeにGitHubからクローンした際に、見えなくなるように設定したはずの.envファイルが普通に表示されびっくりしたので改めて原因をここにメモしようと思います。

.envとは

.envファイル(環境変数ファイル)は、アプリケーションの設定情報や機密情報を保存するためのファイルです。.envファイルを使用することで、異なる環境の設定情報を分けて管理することができます。

.gitignoreとは

Gitリポジトリに追跡されないファイルやディレクトリを指定するための設定ファイルです。つまり、Gitが変更を追跡しないようにするためのルールを定義するために使用されます。
.gitignoreファイルには、特定のファイルやディレクトリ、ファイルの拡張子などのパターンを指定することができます。Gitは、.gitignoreファイルにマッチするファイルやディレクトリを無視し、リポジトリに含めません。

簡単にまとめると見られたくないファイル(機密情報)をここに記述することでGitHubから見えなくなります。

今回のミス

.envファイル内に機密情報を入力し、.gitignoreへ下記のようにページ最下部に/.envと記述していたのですが反映されずにGitHub上に公開されてしまいました。

原因

記述方法に問題はありませんがファイルの性質上下記のことが予想されます。

1. envファイルがすでにリポジトリに含まれていた可能性

.gitignoreファイルは、追加される前に既存のファイルを追跡することはできません。この場合、.envファイルをリポジトリから削除する必要がありました。
おそらく元々リポジトリ上にあったファイルにそのまま記述してしまったため反映がされなかった可能性があります。

2. 作成後の確認不足

完了後にGitHubを確認するのももちろんですが、git statusを実行して.envファイルが存在しないことを確認できていなかった可能性があります。

解決策

上記原因を確認するため、.envファイルを一度削除し、.gitignoreからも記述を削除。この状態で一度コミットとプッシュをし、.envファイルの作成と.gitignoreへの記述をしてからgit statusで確認したところ無事に表示がされなくなりました。その後はGitHub上からも消えて安心です。

感想

今回の問題点のまとめは、.envファイルがすでにリポジトリに存在しているのかの確認と、.gitignoreへの記述後にgit statusでの確認を失念していたことが問題だと思います。
そして正しく.gitignoreファイルの特性を理解していれば起きていないことだと思います。機密情報の取り扱いは今後も大事になってくるのでこの辺の扱いはこれからも慎重に作業できればと思います。

Discussion