当您运行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