ruby-on-rails – 在将远程heroku repo添加到我现有的本地仓库后,无法推送到heroku

这是场景:

1)我的项目合作伙伴和我正在使用github作为代码仓库一起开发Ruby on Rails应用程序.

2)该应用程序在她的github帐户下,她已将我添加为合作者

3)她部署到Heroku并在那里加入我作为合作者

4)我在现有的app目录中使用了以下命令,目的是将现有的Heroku远程应用程序添加为现有本地应用程序的远程应用程序.正如我之前提到的,我现有的本地应用程序已经有了一个远程github

git remote add heroku git@heroku.com:codefellow.git

5)我做了一些修改并将它们推送到github,所有这些都是最新的

6)然后我尝试使用以下命令推送到heroku

git push heroku master

7)这给了我一个错误,说我的分支的尖端落后,如下所示,但当我试图从github拉,它说我是最新的,如下图所示

➜  code-fellows-alumni git:(master) git push heroku master
To git@heroku.com:codefellow.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@heroku.com:codefellow.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.
➜  code-fellows-alumni git:(master) git pull
Already up-to-date.

那么有谁知道这里发生了什么?如果我和Github约会,我的本地分支如何与Heroku不同步?我的项目合作伙伴是否可以将更改推送到Heroku而不是先将它们推送到Github?我查了一下,她没有应用程序的分支.我现在无法与她取得联系,以确定她可能做了什么 – 我甚至不确定如果他们还没有被推到Github,它会允许她将更改推送到Heroku.任何见解都将非常感激.我不想从Heroku克隆应用程序,因为我已经在本地与Github同步了.我想使用Github作为代码库,我不愿意从Heroku的克隆开始.我已经看过关于这个的Heroku文档:https://devcenter.heroku.com/articles/git.它只是说要做一个克隆但我不想因为上述原因这样做.我按照这个问题的答案(How to link a folder with an existing Heroku app)中的指示来做到这一点,但似乎有一个缺失的部分,否则我的项目合作伙伴做了一些不寻常的事情.提前感谢您提供的任何有用的想法.

解决方法

您看到的消息表示已对您本地副本中没有的应用程序进行了更改.当你推送它被拒绝是因为Heroku远程比你的更远,所以你认为你的伙伴已经推送到Heroku而没有推送到Github是正确的 – 这是一个常见的情况,因为你部署到Heroku时从本地存储库部署,与传统的Capistrano部署不同,后者通常会从Github部署代码.

这取决于你作为一个团队提出的工作方式,以防止这种情况发生,但如果你现在需要工作,你可以

> git push heroku master -f.这会强制您进行更改,并会使用您的代码覆盖当前的更改> git pull heroku master将Heroku中的更改提取到您的本地仓库中,然后让您在进行更改时执行git push heroku master.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...