我正在使用Heroku,并且有一个稳定的Rails应用程序(生产环境),所以我想创建一些新的东西,在那里我可以有质量保证环境,在那里我可以看到Heroku上的更改将如何工作(以及聚合版本的增强功能),而不是总是推到我的生产应用程序上。
因此,我所做的是创建一个新的Heroku应用程序,并在本地创建一个新的分支(dev)。我的意图是在我的新Heroku QA应用程序上测试更改后,在本地将dev合并到master,然后从master分支推送到Heroku production。
我的方法可能不适合我的环境,我是一个新手,所以这只是我对如何做到这一点的最好猜测。
但当我将我的开发分支推送到我的新QA应用程序时,它可以推送到QA应用程序的开发分支,但不能推送到主应用程序。因此,我无法在新的QA应用程序上看到(和测试)我的更改。它似乎告诉我,我只能将主分支推送到我的QA应用程序的主分支,因为我已经拉了,所有东西都已经是最新的,但我收到了这个错误:
Pushing to git@github.com:foobar/QA.git
To git@github.com:foobar/QA.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:foobar/QA.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.有人能帮我找出我做错了什么吗--无论是我的环境还是Git?谢谢。
发布于 2012-06-09 05:26:18
Heroku应用程序只在应用程序存储库的主分支上运行(Heroku的本地分支)。如果您想要将一个分支部署到Heroku,而不是本地存储库的主分支,那么您需要指定它。在您的示例中,它应该类似于git push qa-remote dev:master (将qa-remote替换为您的QA应用程序的远程应用的实际名称),即将我的本地开发分支推送到qa-remote上的主分支。
当您第一次像这样推送时,您可能需要添加-f标志来强制推送(非快进)。随后,您应该能够在没有-f标志的情况下推送,只要您的本地分支是最新的。
发布于 2012-06-09 04:48:22
尝试使用-ff (快进)选项进行推送:git push heroku master -ff (将heroku替换为heroku remote的实际名称)。
发布于 2019-04-16 04:00:07
使用以下命令强制推送更新git push -f heroku master
https://stackoverflow.com/questions/10955801
复制相似问题