让 Heroku 运行非主 Git 分支

Posted

技术标签:

【中文标题】让 Heroku 运行非主 Git 分支【英文标题】:Make Heroku run non-master Git branch 【发布时间】:2013-01-13 15:37:32 【问题描述】:

我在 Heroku 上托管了一个项目,它已经到了我想制作备用测试服务器的地步(这样我就可以测试 Heroku 工作人员而不会弄乱生产)。

我已经设置了运行我的主干的主要 Heroku 遥控器和我希望在其上运行备用分支的 Heroku-dev 遥控器。

我的问题是,由于我的备用分支不是 master,Heroku 不会构建它。

$ git push heroku-dev test
counting objects ...
...
Pushed to non-master branch, skipping build.
To git@heroku.com:example-dev.git
* [new branch]      test -> test

目前无法将此构建切换为主构建。显然,一种选择是创建一个全新的 git repo,它是我的测试分支的克隆,但这听起来不太理想。

【问题讨论】:

【参考方案1】:

您可以使用 Git 将替代分支推送到 Heroku。

git push heroku-dev test:master

这会将您的本地测试分支推送到远程的主分支(在 Heroku 上)。


来自@Brian Armstrong 的评论:

还值得注意的是,当你准备好回到大师赛时,你需要做的事情

git push -f heroku master:master 

【讨论】:

确实 - 它也被记录在案:devcenter.heroku.com/articles/… 另外值得注意的是,当你准备好回归大师时,你需要做git push -f heroku master:master 有没有办法在 Heroku 上使用非 master 分支进行部署,从而保持 Heroku master 的原始状态以供以后推广? 不,Heroku 总是使用master。你的用例是什么? @SDP 我过去为 Heroku 调试所做的事情是提交一些东西,将其推送到 Heroku,然后(如果这不起作用)尝试其他东西,提交它(使用 git commit --amend ),将其推送到 Heroku(使用 -f 标志)并重复直到修复。一旦它被修复,确保最终的--amend 是一个带有合理信息的干净提交,然后继续下一步。这样你就可以整天测试事情而无需多次提交。它不漂亮,但它完成了工作:)【参考方案2】:

在我的例子中,默认或基础分支是 develop,所以我使用了:

          git push heroku develop:master 

【讨论】:

【参考方案3】:

如果 git push heroku-dev test:master 对您不起作用,请尝试 git push heroku test:master。 记住“test:master”中的“test”是你所在的新分支的名称。

【讨论】:

【参考方案4】:

您需要先拉取远程分支,然后才能推送非主分支。

在本地存储库中运行以下命令

git pull https://heroku:YOUR_HEROKU_API_KEY@git.heroku.com/YOUR_APP_NAME.git

【讨论】:

以上是关于让 Heroku 运行非主 Git 分支的主要内容,如果未能解决你的问题,请参考以下文章

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

使用 heroku CLI 部署 GitHub 分支

Git拉入错误的分支

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

Heroku构建错误:为数据库适配器指定了'sqlite3',但未加载gem

您如何在非主分支上干净地维护 django 迁移?