git push heroku master
「heroku」を実行すると、プッシュ先のリモート リポジトリが識別されます。あなたの場合、「heroku」は本番サーバーへの参照のようです。同様に、github を指す「オリジン」リモートがある可能性があります。
git リモートを一覧表示すると、おそらく次のように表示されます。
> git remote -v
heroku git@heroku.com:heroku_app_name.git (fetch)
heroku git@heroku.com:heroku_app_name.git (push)
origin git@github.com:your_github_org/repo_name.git (fetch)
origin git@github.com:your_github_org/repo_name.git (push)
別の heroku アプリにプッシュするには、そのアプリを新しい git リモートとして追加するだけです。
git remote add heroku-staging git@heroku.com:heroku_staging_app.git
これで、必要に応じていずれかのリモートにプッシュできるようになります。
git push origin master //push to github
git push heroku-staging //deploy to staging
git push heroku master //deploy to production
一般に、手動で heroku にプッシュしないことをお勧めします。できれば、継続的インテグレーション サーバーで github を監視し、変更をプッシュするたびにテストを実行し、自動テストに合格した場合にのみステージングにデプロイできます。その後、手動でトリガーされた CI タスクを使用して、現在ステージングされているコミットを本番環境にプッシュすることもできます (または、本番環境のデプロイも自動化することもできます)。
heroku
コマンドラインを使用して同じ構成を実行できます。これにより、両方の heroku アプリで環境変数やその他の設定を管理するための優れた方法も提供されます:
https://devcenter.heroku.com/articles/multiple-environments