当尝试使用现有的git repo上传Sinatra应用程序时,“Heroku推送被拒绝,没有检测到Cedar支持的应用程序”

时间:2012-08-22 22:07:45

标签: ruby git heroku sinatra

我的个人网站有一个现有的git repo,我正在移植到Sinatra(主要用于模板,它是一个静态站点)。我不想丢失/重置这个git存储库。

当我尝试推送到Heroku时,我收到以下错误。我有一个config.ru文件,一个Gemfile和一个Gemfile.lock,以及Sinatra的其他一些东西。运行rackup有效,运行bundle exec rackup有效,而且我没有收到Heroku关于缺少依赖项的任何警告。

我错过了什么吗?我可以发布我的网站的目录结构,如果它会有所帮助(虽然它是近源的)。

~/Repos/website ➜ gp heroku master
Counting objects: 2836, done.
Compressing objects: 100% (2669/2669), done.
Writing objects: 100% (2836/2836), 3.48 MiB | 252 KiB/s, done.
Total 2836 (delta 481), reused 2117 (delta 155)

-----> Heroku receiving push
 !     Heroku push rejected, no Cedar-supported app detected

To git@heroku.com:APP_NAME_HERE.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:APP_NAME_HERE.git'

3 个答案:

答案 0 :(得分:4)

Cedar app 应该识别config.ru文件并为您创建一个Web进程,因此git可能无法跟踪某些基本文件。检查config.ruGemfileGemfile.lock是否全部已提交(您可以使用git status,但请注意,它不会为忽略的文件输出任何内容,因此您还应检查{ {1}}文件)。

如果提交了所有文件,您还可以尝试指定希望Web进程在.gitignore中使用的命令。有关更多信息,请参阅Heroku文档:

答案 1 :(得分:4)

问题解决了。我正在开发一个git分支,尤其是Heroku / Sinatra支持,结果发现我正在运行git push heroku master,它将本地主人推送到远程主人。主分支没有有效的Heroku应用程序。我假设它会将当前的本地分支推送到远程主分支,但事实并非如此。 git push sinatra:master解决了这个问题。

答案 2 :(得分:2)

对于那些发现接受的答案无法解决问题的人,这个相关问题可能会提供解决方案:"Heroku push rejected, no Cedar-supported app detected" when trying to upload a Sinatra app with an existing git repo