如何将不同的分支推送到不同的 Heroku 应用程序?

Posted

技术标签:

【中文标题】如何将不同的分支推送到不同的 Heroku 应用程序?【英文标题】:How do I push different branches to different heroku apps? 【发布时间】:2013-08-18 08:19:35 【问题描述】:

我一直在开发一个被推送到 heroku 的网络应用程序。源代码托管在 GitHub 上。

所以git push 将 master 分支推送到 GutHub。

我的 git 分支 'master' 已连接到 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's own docs on this 打滚,但他们都认为我已经使用heroku create CLI 设置了我的应用程序,而不是通过 Heroku 的网站设置我的应用程序,但是以下段落让我头晕目眩:

输入git push staging mastergit push production master 很简单 您已按照上述步骤操作。许多开发人员喜欢利用 git 的 但是,分支以分离进行中和生产就绪的代码。在这种 设置,您可以从您的主分支部署到生产,合并更改 一旦在登台应用程序上进行了审查,就可以从开发分支中获取。有了这个 设置,推送有点棘手:

我想结束的地方如下:

    master 分支中:(a) git push 将代码推送到 GitHub,并且 (b) git push heroku 将代码推送到 Heroku 上的 my-app-stagingproduction 分支中:(c) git push 将代码推送到 GitHub 上的 production 分支,并且 (d) git push herokuproduction 代码推送到 Heroku 上的 my-app-prod

鉴于上面的步骤 1 已经到位并且步骤 2 (c) 已经到位,我该如何实现步骤 2 (d)?

【问题讨论】:

【参考方案1】:

您应该为 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 中的远程分支 master,因此 my-app-prod 将与生产分支中的代码一起部署。

【讨论】:

太完美了。瞧——就这样。 :-) 有一种方法可以将您的分支与 heroku 管道阶段相匹配,这样您就不必担心明确指定分支。

以上是关于如何将不同的分支推送到不同的 Heroku 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

git - 将某个分支推送到远程的某个分支

将提交的文件拆分并推送到两个不同的分支

如何将我的节点应用程序成功推送到Heroku?

如何更新堆栈并将克隆的应用程序推送到 Heroku [重复]

如何将我的 git repo 的一部分推送到 Heroku?

无法推送到heroku