2012-09-13 133 views
6

尝试推送到Heroku后,我收到了此错误消息(复制如下)。我最初设置了一个facebook canvas应用程序,并选择了heroku选项上的托管。它给了我一个Heroku的URL,这是我加入的,我在我的机器Heroku:'git push -f'后如何“git pull”

heroku git:remote -a desolate-springs-1684 

开发的应用程序的远程但是,当我推开,我得到这个错误

error: failed to push some refs to '[email protected]: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'之后我会放什么? heroku网址的名称?或者是其他东西?

回答

18

强制您的git push不是一个好主意,因为您失去了您或您在工作副本中缺少的其他合作者所做的任何提交。

在推送之前,您应该将上游更改合并或重新绑定到本地工作副本中。

合并更改本地

$ 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来部署应用程序。

1

该错误基本上意味着代码库中的代码比您尝试推送的代码更新。

你必须做一个拉和更新自己的工作库,然后再推,或者只是用力一推

git pull heroku master 

作为一个侧面说明,如果你不熟悉所有的Git命令,我会建议你使用GUI,因为它可能会使整个过程减少很多。

这里有很多好客户:http://git-scm.com/downloads/guis

相关问题