【问题标题】:Heroku: how to "git pull" after 'git push -f'Heroku:如何在“git push -f”之后“git pull”
【发布时间】:2012-09-07 02:36:10
【问题描述】:

我在尝试推送到 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 网址的名称?或者是其他东西?

【问题讨论】:

    标签: ruby-on-rails git heroku github


    【解决方案1】:

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

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

    在本地合并更改

    $ git pull heroku master
    $ git push heroku master
    

    在本地 rebase 更改

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

    【讨论】:

      【解决方案2】:

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

      您必须拉取并更新您自己的工作存储库,然后再次推送,或者只是强制推送

      git pull heroku master
      

      附带说明,如果您不熟悉所有 git 命令,我建议您使用 GUI,因为它可以使整个过程不那么繁重。

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

      【讨论】:

        猜你喜欢
        • 2021-09-12
        • 2011-10-17
        • 2017-03-09
        • 2014-03-09
        • 1970-01-01
        • 2011-05-23
        • 2012-06-24
        • 1970-01-01
        • 2017-02-22
        相关资源
        最近更新 更多