git, Heroku: pre-receive hook declined

吃可爱长大的小学妹 提交于 2019-11-27 22:46:54
manojlds

Make sure you are pushing a repo that contains a proper supported app ( Rails, Django etc.) and you are not just pushing some random repo to test it out.

Newbie in Heroku: Error when push my app to Heroku

If that is not the case and you are pushing what you think is a valid app, contact Heroku support and they will fix it for you.

I faced the same problem:

! [remote rejected] vX.X.XX -> master (pre-receive hook declined) 
error: failed to push some refs to 'git@heroku.com:[application-name]'

I realized that my heroku application Stack is 'cedar-10' and was deprecated from 04/11/2014 and disabled from 04/11/2015 (Cedar-14 is now Generally Available).

The solution was to upgrade the heroku application Stack following the guide:

Upgrading the production app to Cedar-14

Another issue could be that in a production environment, you can't use sqlite3, the default database when you make a rails app.

In order to fix this, just change the database your rails app uses to Postgres. This can easily be accomplished by editing your Gemfile

From your Gemfile, remove:

gem sqlite3;

and add the following:

group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

I had the same problem but with a Django app, it turned out that pip wasn't able to download/install one of the dependencies of the requirements.txt file (it was eyeD3)

In case someone makes the same dumb mistake I did...

If you have an error in your css this error can also show up.

In one of my media queries I put

@media screen adn (min-width: 1000px) {

Instead of the "and" which gave me this error.

A good indicator that this may be the case is if you get an error that contains the message

"Tasks: TOP => assets:precompile ... Precompiling assets failed" 

That was my first clue to look in my css.

Hope this helps someone!

Mon

A little late to the game, one of my issues was I had an outdated sshkey. Just need to update that in the settings.

Another thing was I was pushing Python Django CMS, and it was running python manage.py collectstatic during deploy and it was failing. So make sure you check the log heroku logs --tail. That gave me another hint to turn off collectstatic, it event tells you what to type to turn it off.

i thought , this will not be the error occured due to any app , or code changes. i have same problem now this happen due to the following reason:

  • 1) i have code on bitbucket/git i push the code to repository (this repo is linked with the heroku app,meanse changes to this will reflects on heroku)
  • 2)after pushing code to repo , i am trying to push code on heroku with "git push heroku master" but due to some reason i abort this command, thats why code is not pushed to heroku

  • 3)then i am agian triyng to push code to heroku it says same error
    as above

  • 4) the solution for this is "just pull yours last commited code" and push the changes to heroku ..thats it thanks

I had this with a sinatra application. (Heroku does support Sinatra).

The instructions on the heroku blog post were incomplete

https://blog.heroku.com/32_deploy_merb_sinatra_or_any_rack_app_to_heroku

My program ran fine locally but I got that error when trying to push to heroku.

The heroku blogpost didn't include the need to make a gemfile and do bundle install. The program was running locally fine, but to make it work on heroku it needed a Gemfile and bundle install on it.

this link here https://teamtreehouse.com/community/how-can-i-make-my-sinatra-app-public mentioned that I needed a Gemfile, and mentioned the contents of the Gemfile. And then to do bundle install. Then once that is done, then follow the instructions on that heroku blog post, of making the program file, and the config.ru and the git repo and doing heroku create (which also creates the remote), then git push heroku master.

i.e.

Gemfile as mentioned at treehouse link

# define our source to look for gems
source "http://rubygems.org/"

# declare the sinatra dependency
gem "sinatra" 

And bundle install to install that Gemfile.

bundle install

hello.rb (as mentioned on heroku blogpost)

require 'rubygems'
require 'sinatra'

get '/' do
  "Hello from Sinatra on Heroku!"
end

config.ru

require './hello'
run Sinatra::Application

git

$ git init
Initialized empty Git repository in /Users/adam/hello/.git/
$ git add .
$ git commit -m "sinatra and heroku, two great tastes"
[master (root-commit)]: created 93a9e6d: "sinatra and heroku, two great tastes"
 2 files changed, 9 insertions(+), 0 deletions(-)
 create mode 100644 config.ru
 create mode 100644 hello.rb

heroku create

$ heroku create
Created http://severe-spring-77.heroku.com/ | git@heroku.com:severe-spring-77.git
Git remote heroku added

the push to heroku

$ git push heroku master
Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 385 bytes, done.
Total 4 (delta 0), reused 0 (delta 0)

-----> Heroku receiving push
-----> Verifying repository integrity... done, looks like a Rack app.
       Compiled slug size is 0.1MB
-----> Launching....... done
       App deployed to Heroku

To git@heroku.com:severe-spring-77.git
 * [new branch]      master -> master

For me it was an unused import in java app , removed the unused import and everything built fine.

I see you already got answers. Let me just share my problem and solution incase it helps anyone else that might make the same mistake I did.

I had this problem, (same error with Heroku)

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

The mistake I made some changes to my code and removed some parameters, apparently I missed a simple comma (,) on a line. This caused a build error. Which was not visible in the console upon pushing, only the "pre-receive hook declined" error.

SOLUTION I fixed the comma issue, rebuild and pushed to Heroku and now it works. I wanted to share this here, so if someone else makes this mistake, they can try this as well instead of waiting for Heroku to reply.

I hope this helps someone.

Try Updating Node/php or any engines to latest version and then deploy again it will work for sure.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!