73
votes

I am getting this error when I am trying push my files into heroku rep.

Ive set autocrlf = false already in gitconfig but this problem is still there. i have also tried this solution here but no gain.

Any suggestion is this possible that git is still using old config setting if yes then how can I refresh it.

Thankyou

C:\myapp>git push heroku
To [email protected]:myapp.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:myapp.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

while trying git pull heroku master

warning: no common commits
remote: Counting objects: 215, done.
remote: Compressing objects: 100% (147/147), done.
remote: Total 215 (delta 82), reused 132 (delta 62)Receiving objects:  79% (170/

Receiving objects: 100% (215/215), 1.49 MiB | 107 KiB/s, done.
Resolving deltas: 100% (82/82), done.
From heroku.com:myapp
 * branch            master     -> FETCH_HEAD
Auto-merging start.php
CONFLICT (add/add): Merge conflict in start.php
Auto-merging src/appinfo.txt
CONFLICT (add/add): Merge conflict in src/appinfo.txt
Auto-merging result.php
CONFLICT (add/add): Merge conflict in result.php
Auto-merging landhere.php
CONFLICT (add/add): Merge conflict in landhere.php
Automatic merge failed; fix conflicts and then commit the result.

while trying git push heroku -f

F:\myapp>git remote add heroku [email protected]:myapp.git
F:\myapp>git push heroku

Counting objects: 41, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (40/40), done.
Writing objects: 100% (41/41), 1.36 MiB | 12 KiB/s, done.
Total 41 (delta 0), reused 0 (delta 0)

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

To [email protected]:myapp.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:myapp.git'
28

28 Answers

55
votes

This error means that the upstream repository has made commits that would be lost if you were to push. First do a "git pull" to merge, and then push again.

40
votes

In Heroku,you may have problems with pushing to master branch. I just had to start a new branch using

git checkout -b masterbranch

and then push using

git push heroku masterbranch

please try as above!

18
votes

Execute this:

$ rake assets:precompile
$ git add .
$ git commit -m "Add precompiled assets for Heroku"
$ git push heroku master

Source: http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

16
votes

I'm the only person working on my app and only work on it from my desktop, so the possibility that I managed to get the heroku repository above dev didn't make sense. BUT! I recently had a Heroku support rep look into my heroku account for a cache issue involving gem installs and he had changed something that caused heroku to return the same error as the one listed above. A git pull heroku master was all it took. Then I found the reps minor change and reverted it myself.

10
votes

Try Using

git push heroku main

instead of

git push heroku master

Reason: Because the default starting branch of git has been changed from master to main that's why your git command is not recognizing master branch and giving you ref error

9
votes

I had the same problem, the solution was

in my branch, called "testBranchSuper"

i use

git checkout -b main

and then i use

git push heroku main

8
votes

If you want to push commit on git repository, plz make sure you have merged all commit from other branches.

After merging if you are unable to push commit, Use the push command with -f

git push -f origin branch-name

Where origin is the name of your remote repo.

5
votes

Make sure you’re pushing the right branch. I wasn’t on master and kept wondering why it was complaining :P

3
votes

On my case clearing buildpacks worked heroku buildpacks:clear

2
votes

For anyone arriving here from a Google search with the same error message. Also be aware that you can have a problem if you are using sqlite3

https://devcenter.heroku.com/articles/sqlite3

1
votes

I followed the following steps and it worked for me.

  • Please take a copy of your (local) changes. fetch heroku reset --hard heroku/master Then try to 'git push heroku'.
1
votes

It would appear that you are not fully up-to-date. You would need to do a git pull and either "--rebase" or let it merge into your set.

After this, you should then be able to push, since it would be a 'fast-forward' change that wouldn't remove history.

Edit: example command list

git pull
git push
1
votes

Another issue could come from the use of backticks, those are not supported by the compiler (uglifier).

To fix it, replace config.assets.js_compressor = :uglifier with config.assets.js_compressor = Uglifier.new(harmony: true).

credits: https://medium.com/@leog7one/how-to-fix-execjs-runtimeerror-syntaxerror-unexpected-character-on-heroku-push-deployment-c0b105a64655

1
votes

There is one more subtle reason why this might happen. If you added some new packages to your app or updated existing packages, remember to update your requirements.txt file as well.

pip freeze > requirements.txt

Then you can continue with the usual process for pushing your repository

git add .
git commit -m "Some changes"
git push heroku master
1
votes

For me it started working after setting global username/email.

To set your global username/email configuration:
1. Open the command line.
2. Set your username:

git config --global user.name "FIRST_NAME LAST_NAME"
  1. Set your email address:
git config --global user.email "[email protected]"
  1. Commit
git commit -m "comment"
  1. Push to heroku
git push heroku master

BOOM! It worked (atleast for me)

1
votes

For me force with push operation worked.

git push heroku master --force

Case - when pushed commit from current branch was removed(commit was pushed to remote repository).

0
votes

I was getting this error because I added a line to my requirements.txt file that had an error:

simplejson=2.6.2

There was only one = and there should be two:

simplejson==2.6.2

Correcting this fixed the error.

0
votes

It is probably due to an Outdated yarn.lock file

Just run the following commands

yarn install
git add yarn.lock
git commit -m "Updated Yarn lockfile"
git push heroku master
0
votes

In my case, I had an invalid package name. I wasn't able to pick up on the error code right away, because I didn't scroll up far enough, but the error was:

remote:        $ NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client
remote: npm ERR! code EINVALIDPACKAGENAME // <-- this was hard to find
remote: npm ERR! Invalid package name "react-loader-spinne  r": name can only contain URL-friendly characters
0
votes

I had same problem, and I resolved it by doing this: heroku config:set DISABLE_COLLECTSTATIC=1 It was a django project on python 3.7

0
votes

I was facing this issue while deploying a django app on heroku.

In my case the requirements.txt, Procfile and runtime.txt files were present in a subdirectory. Moving them to the root directory of the repository solved the problem.

Heroku is specifically looking for requirements.txt in the root directory to setup the python environment.


P.S :

If heroku is unable to reach till the wsgi file residing in the subdirectory, solve it by referring below thread -

How can I modify Procfile to run Gunicorn process in a non-standard folder on Heroku?

0
votes

Also, make sure your branch is clean and there is nothing unstaged you can check with git status stash or commit the changes then run the comand

0
votes

Just switch the branch to main, It will surely work, and delete the project from Heroku remote. Delete all branches from local and use only one "main".

For reference: https://help.heroku.com/O0EXQZTA/how-do-i-switch-branches-from-master-to-main

0
votes

If your heroku project root is in a different directory than your git branch root, use this:

git subtree push --prefix path/to/root heroku master

0
votes

I had similar issue where local build was working fine however when I push my branch onto heroku it would fail to build. Issue was that I had some devDependencies in my package.json which were not installed during npm install which was causing my build to fail.

If you need access to packages declared under devDependencies in a different buildpack or at runtime, then you can set NPM_CONFIG_PRODUCTION=false or YARN_PRODUCTION=false to skip the pruning step.

Also you can move you devDependencies into dependencies...

0
votes

When I tried git pull heroku master, I got an error fatal: refusing to merge unrelated histories.

So I tried git pull heroku master --allow-unrelated-histories and it worked for me

0
votes

I'm following this tutorial from freeCodeCamp and ran into the same issue.

$ git push heroku master no longer works, because GitHub is using more inclusive language as of October 2020 and changed their branching language to use main instead of master.

This command works instead:

$ git push heroku main

0
votes

In case I was not the only beginner that used someones 'FULL STACK OVERMEGASUPER EASY AND COOL' Udemy course, I'm writing this post (and in order to add to the list of possible solutions). I had the following error:

   remote: -----> Build
remote:        Running build
remote:        
remote:        > [email protected] build /tmp/build_cb8c8cb5
remote:        > cd frontend && npm install && npm run build
remote:
remote: sh: 1: cd: can't cd to frontend
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 2
remote: npm ERR! [email protected] build: `cd frontend && npm install && npm run build`
remote: npm ERR! Exit status 2
remote: npm ERR!
remote: npm ERR! Failed at the [email protected] build script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

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

I tried almost everything that was offered by other users. Nonetheless, nothing solved my issue. Then, I finally got nosy enough to look into the logs (for some reason I resorted to the internet right off the bat).

The solution was as follows:

  1. open package.json and remove "build" line in "scripts";
  2. git add .
  3. git commit -your message-
  4. git push heroku main

This time, build succeeded. It was a very silly mistake. Terminal told me what was wrong but I did not notice it.