Heroku推送被拒绝

时间:2016-09-01 09:31:25

标签: git heroku

我在将我的主分支推送到heroku时遇到问题。我使用以下命令:

git push heroku master

我遇到错误 -

Counting objects: 114, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (112/112), done.
Writing objects: 100% (114/114), 335.40 KiB | 0 bytes/s, done.
Total 114 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/php.tgz
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:

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

我甚至访问过Heroku的链接https://devcenter.heroku.com/articles/buildpacks#detection-failure并尝试实施他们提到的所有方法,但似乎没有任何方法可以帮助我。

有人可以帮忙吗?

11 个答案:

答案 0 :(得分:7)

刚好发生在我身上,然后我开始工作了

尝试清除buildpacks,再次添加并添加/ commit / push到heroku

heroku buildpacks:clear
heroku buildpacks:set heroku/php
git add/commit/push heroku master

答案 1 :(得分:2)

我遇到了同样的问题,但我通过添加" requirements.txt"在提到的here

根目录中

仅当应用程序在根目录中具有requirements.txt或Pipfile时,Heroku支持才会应用于应用程序。即使应用程序没有模块依赖项,它也应该包含一个空的requirements.txt或Pipfile来记录您的应用程序没有依赖项。

答案 2 :(得分:1)

对于节点用户,确保只有一个文件满足 package-lock.json 的文件,我遇到了同样的问题,这是因为我有 npm-shrinkwrap.json 文件和 package-lock.json文件以及我不得不删除 package-lock.json 并且构建成功

答案 3 :(得分:0)

迟到的答案。也许对一些人来说可能会有所帮助。

当我推动一个python应用程序时发生在我身上。如果在命名某个文件时出错,可能会导致此错误。就我而言,它的python和我拼错了一个文件名。因此,它无法检测到构建包。重命名文件应该可以工作。

答案 4 :(得分:0)

如果您尝试推送nodejs应用程序并且您收到此错误,这可能是因为您没有指定节点版本。我遇到了这个错误,因为我没有指定"引擎":{"节点:" 8.2.1" }

您可以在此处获得更多详细信息:https://kb.heroku.com/why-is-my-node-js-build-failing-because-of-an-invalid-semver-requirement

答案 5 :(得分:0)

如果不在应用程序的根目录中配置某些内容,则无法将随机存储库推送到Heroku。例如,如果要制作Python应用程序,则应在应用程序的根目录中包含一个requirements.txtsetup.py文件。这样,Heroku可以决定需要哪种资产并自行配置。您可以从这里成功推送。

问题主要是由无法收集的依赖库引起的;检查您的要求。

答案 6 :(得分:0)

当我的Node.js应用程序未遵循buildpack要求时,这发生在我身上。我在/ server子目录中有package.json文件,但它必须位于根目录中。将所有服务器文件都移到根目录后,heroku能够确定正确的buildpack,并且能够推送到我的heroku应用。

答案 7 :(得分:0)

有时是因为创建前端应用程序时,它还会自动初始化git。

首先,您必须在 clientFolder 文件夹中删除.git文件夹

然后,运行下一个代码以删除git子模块缓存

git rm -f --cached clientFolder

然后只需对存储库进行添加和提交

git add .
git commit -am 'Adding clientFolder to the main git repository'

现在您可以运行:

git push heroku master

希望这会对某人有所帮助。

答案 8 :(得分:0)

bundle install删除无意义的gem后,我无法运行Gemfile时,我在Rails中遇到了此问题。因此,Gemfile.lock不匹配,Heroku拒绝了推送。

答案 9 :(得分:0)

由于有 2 个锁定文件,我在 Javascript 项目中遇到此错误。 Heroku 不允许这样做。

删除yarn.lock后,错误解决。

答案 10 :(得分:0)

1- 您的项目必须有 Procfile 2- 您的项目必须有一个 requirements.txt ||使用 pip freeze > requirements.txt 命令

这个错误主要是由于缺少 Procfile 和 requirements.txt 文件引起的。 :)