web-dev-qa-db-ja.com

異なるブランチを異なるherokuアプリにプッシュするにはどうすればよいですか?

HerokuにプッシュされるWebアプリの開発に取り組んでいます。ソースはGitHubでホストされています。

したがって、git PushはマスターブランチをGutHubにプッシュします。

私のgitブランチ「マスター」はHerokuアプリ「my-app-staging」に接続されています

したがって、git Push herokuはアプリをmy-app-staging.herokuapp.comにプッシュします

「プロダクション」アプリとなる新しいHerokuアプリを作成しました。「my-app-prod」と名付けましょう。

'production'(つまりgit checkout -b production)という名前のブランチを作成し、git Push -u Origin productionを実行してGitHubのマネージドブランチにしました。

次に、productionブランチをmy-app-prod.herokuapp.comにリンクして、productionブランチに切り替えたときに、単にgit Push heroku(またはgit Push prod-heroku productionまたは類似)と出来上がり-本番ブランチが本番アプリにプッシュされます。

Herokuでproductionブランチをmy-app-prodにリンクするための推奨される方法は何ですか?

私は Herokuの独自のドキュメント を使用していますが、_heroku create CLIを使用してアプリをセットアップしたものと想定していますが、HerokuのWebサイトからアプリをセットアップしていませんが、次の段落私の頭を回転させます:

上記の手順を実行すると、git Push staging mastergit Push production masterを入力するのが簡単になります。ただし、多くの開発者はgitのブランチを利用して、進行中のコードと本番用のコードを分離したいと考えています。このような設定では、マスターブランチから本番環境にデプロイし、ステージングアプリでレビューされた後、開発ブランチからの変更をマージできます。この設定では、プッシュは少しトリッキーです。

私が行きたい場所は次のとおりです:

  1. ブランチmaster:(a)git PushはコードをGitHubにプッシュし、(b)git Push herokuはコードをHerokuのmy-app-stagingにプッシュします
  2. ブランチproduction:(c)git PushはコードをGitHubのproductionブランチにプッシュし、(d)git Push herokuproductionコードをHerokuのmy-app-prod

上記のステップ1がすでに実行されており、ステップ2(c)が実行されている場合、ステップ2(d)を実行するにはどうすればよいですか?

35
Dave Sag

My-app-prodに別のリモートを追加して、prod-herokuという名前を付けます(GIT_URLを、herokuのmy-app-prodの設定ページにあるGit URLに置き換えます)。

git remote add prod-heroku GIT_URL
git Push prod-heroku production:master

これにより、ローカルブランチのプロダクションがprod-herokuのリモートブランチマスターにプッシュされ、my-app-prodがプロダクションブランチのコードとともにデプロイされます。

63
akhanubis