让 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 分支的主要内容,如果未能解决你的问题,请参考以下文章