我的个人网站有一个现有的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'
答案 0 :(得分:4)
Cedar app 应该识别config.ru
文件并为您创建一个Web进程,因此git可能无法跟踪某些基本文件。检查config.ru
,Gemfile
和Gemfile.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