おはこんばんわ。
本記事では、がっつりタイトルにも含まれている通り、.envについてです。
.envをコミットしてしまった時の話
ほんとに昨日とかの話にはなるのですが、だいぶ前に依頼されたものに着手しようと思いまして、依頼されたのは内部で利用するツールで、ほぼRustでバックエンドAPIとウェブサーバーを書いたのですが、.envにポートとクライアントID、シークレットクライアントID、JWTトークンの署名に必要なキーの情報などを含めるようにしていました。
この時点で.gitignoreに追加されていないといけないのですが、なぜか.gitignoreに.envが書かれていませんでした。
私はその時、CodeのGit拡張機能でGitを操作していたのですが、何も考えずに.envを含んだステージをコミットしてしまいました。
コミットした後に「え、何してん」って気づいてすぐにgit revertして.envを取り除いて、偶然、まだ機密情報(値)自体は含んでいなかったので、難は逃れました。
.envをコミットしてしまった際の対処法
今回私は値を入れていなかったので、難を逃れたと言いましたが、値を入れた状態で間違ってコミットしてしまった時は
git push前
プッシュする前ならまだ助かります。
git reset --soft HEAD^
をして、ステージ状態に戻して、.gitignoreに.envを追加しましょう。
git push後
諦めてください。
ほぼほぼ無理です。
なので、すべての機密情報をリセットする他ありません。
このように、.envに値を入れるということは、大切な情報ということなので、間違っても公開するようなことはしないように注意しましょう。