ファイルの変更履歴が存在する場合の対処法
ファイルの変更履歴が存在する場合、つまり、Herokuにプッシュしたときから少しでもファイルに差分が存在する場合を考えます。この場合は通常通りコミットして、そのコミットをHerokuにプッシュすれば問題ありません。
% git add .
% git commit -m "後から見てわかりやすいコミット名"
その後、下記のコマンドを実行して、先ほど作成したコミットをHerokuへプッシュしましょう。
% git push heroku master
このように、環境変数をHerokuに設定するだけでは本番環境に反映されません。Herokuへpushすることではじめて本番環境に反映されます。
ファイルの変更履歴が存在しない場合の対処法
続いて、ファイルの変更履歴が存在しない場合、つまり、特に変更するファイルもないがHerokuに設定した環境変数だけ本番環境に反映させたい場合です。
Herokuの仕様上、最新のコミット履歴が存在しない状態でgit push heroku masterコマンドを実行しても「Everything up-to-date(すでに最新の状態に更新されています)」と表示されます。
空のコミットを生成する
% git commit --allow-empty -m "空のcommit"
GitHub Desktopで空のコミット履歴が確認できれば成功です。
新しくコミットを生成することができたので、これで問題なくHerokuへプッシュすることができます。
% git push heroku master
まとめ
流れをおさらいすると、環境変数をHerokuの本番環境に反映させるためには、Herokuで環境変数を設定した上でプッシュする必要があります。しかし、環境変数を設定し忘れた状態でプッシュしてしまった場合、環境変数を設定した上でもう一度プッシュする必要があります。
ここで1つ問題なのが、新しいコミットを生成しなければプッシュすることはできないということです。そこで空のコミットを生成してプッシュを行います。
このように新しいコミット履歴がない場合は、空のコミット履歴を生成してプッシュするという方法があります。こちらは環境変数の設定漏れに後から気づいた場合などに有効的な手段です。