尝试推送到Heroku后,我收到此错误消息(复制如下).我最初设置了一个Facebook画布应用程序,并选择了heroku选项托管.它给了我一个heroku url,我在我的机器上开发的应用程序中添加了一个遥控器
heroku git:remote -a desolate-springs-1684
但是当我推动时,我得到了这个错误
error: Failed to push some refs to 'git@heroku.com:desolate-springs-1684.git' To prevent you from losing history,non-fast-forward updates were rejected Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details. localhost:nhl michaelmitchell$
所以我做了
git push -f heroku master
但现在我显然必须做一个’git pull’.但是,在’git pull’之后我会放什么? heroku url的名字?或者是其他东西?
解决方法
强制你的git推送并不是一个好主意,因为你丢失了你或你工作副本中缺少的其他合作者所做的任何提交.
在推送之前,您应该将上游更改合并或重新绑定到本地工作副本中.
在本地合并更改
$git pull heroku master $git push heroku master
在本地重新定义更改
$git pull --rebase heroku master $git push heroku master
顺便说一句,既然你已经推动了你的改变,你实际上不需要做任何其他事情.远程存储库已包含所有更改.
如果无论出于何种原因,$git status命令返回过时的引用,只需运行即可
$git pull heroku
获取所有远程更改.请注意,除非您指定目标分支(或者您启用了跟踪分支),否则git pull将简单地下载(而不是合并)上游更改.
另请注意,Heroku不应被视为git托管.这意味着从Heroku执行git pull非常罕见.相反,您应该使用git托管(例如GitHub或BitBucket)来存储您的存储库,并仅执行推送到Heroku以部署应用程序.