使用Aptana Studio 3和Heroku进行RoR网站项目。当我通过GitHub'提交'后将我的网站推送到Heroku时,我不断收到此错误。已到处搜索,但无法找到我可以遵循的简单解决方案。有什么建议发生了什么以及如何重新开始? THX。
User$ git push heroku master
To git@heroku.com:xxxxxx.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@heroku.com:xxxxxx.git'
To prevent you from losing history, non-fast-forward updates were rejected.
Merge the remote changes before pushing again.
See 'non-fast forward' section of 'git push --help' for details.
User$
我在@SkillDrick中尝试了这个建议,并在最后得到了这个错误:
User$ git merge heroku/master master
usage: git merge [options] <remote>...
or: git merge [options] <msg> HEAD <remote>
-n do not show a diffstat at the end of the merge
--stat show a diffstat at the end of the merge
--summary (synonym to --stat)
--log add list of one-line log to merge commit message
--squash create a single commit instead of doing a merge
--commit perform a commit if the merge succeeds (default)
--ff allow fast forward (default)
-s, --strategy <strategy>
merge strategy to use
-m, --message <message>
message to be used for the merge commit (if any)
-v, --verbose be more verbose
-q, --quiet be more quiet
user$ git push heroku master
To git@heroku.com:worrybin.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@heroku.com:worrybin.git'
To prevent you from losing history, non-fast-forward updates were rejected.
Merge the remote changes before pushing again.
See 'non-fast forward' section of 'git push --help' for details.
答案 0 :(得分:6)
我有同样的问题。一个非常简单的解决方案是强制推动:
git push heroku master -f
由于heroku只是用于部署你的应用程序(而不是像源/主机这样的源代码控制),这应该没问题。
答案 1 :(得分:5)
出于某种原因,你的Heroku回购已经分道扬..你可以这样做:
git fetch heroku
git merge heroku/master
git push heroku master
将“在再次推送之前合并远程更改”。在合并之前,可以git diff heroku/master
找出实际不同的内容。
答案 2 :(得分:0)
执行git pull
,然后执行git push
答案 3 :(得分:0)
就像manojlds说的那样,先做一个git pull。
实际上,在做任何事情之前,请检查您的本地回购,如果您有任何更改。
git status
如果没有,请执行git pull heroku master
。如果有变化,请提交或存储它们。(我想说现在就把它们藏起来)
你拉(希望没有任何冲突)后,做一个git push heroku master,你应该全部设置好。如果您有冲突,请先解决,然后提交,然后按。
基本上发生的事情是你的heroku repo与你当前的回购分歧。这主要发生在以下场景中:
在这种情况下,你是userA,这意味着你拉了一些不在heroku中的东西。