当我尝试将文件推送到heroku rep时,我收到此错误。
我已经在gitconfig中设置了autocrlf = false但是这个问题仍然存在。 我也试过这个解决方案here 但没有收获。
任何建议都可能是git仍然使用旧配置设置,如果是,那么我该如何刷新它。
三江源
C:\myapp>git push heroku
To git@heroku.com:myapp.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@heroku.com: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.
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.
git push heroku -f
时
F:\myapp>git remote add heroku git@heroku.com: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 git@heroku.com:myapp.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:myapp.git'
答案 0 :(得分:32)
此错误意味着上游存储库已提交了如果您要推送将丢失的提交。首先进行“git pull”合并,然后再次推送。
答案 1 :(得分:14)
执行此操作:
$ rake assets:precompile
$ git add .
$ git commit -m "Add precompiled assets for Heroku"
$ git push heroku master
来源:http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
答案 2 :(得分:8)
我是唯一一个在我的应用程序上工作但只能从我的桌面上工作的人,因此我设法将heroku存储库放在dev上面的可能性没有意义。但!我最近有一个Heroku支持代表查看我的heroku帐户以查找涉及gem安装的缓存问题,并且他更改了导致heroku返回与上面列出的错误相同的错误。只需要git pull heroku master
。然后我发现代表们做了很小的改变并自己将其还原。
答案 3 :(得分:4)
尝试使用
git push heroku main
代替
git push heroku master
原因: 因为 git 的默认起始分支已从 master 更改为 main 这就是为什么您的 git 命令无法识别 master 分支并给您 ref 错误
答案 4 :(得分:3)
我遇到了同样的问题,解决方法是
在我的分支中称为“ testBranchSuper”
我使用
git checkout -b main
然后我用
git push heroku main
答案 5 :(得分:3)
如果你想在git仓库上推送提交,请确保你已经合并了其他分支的所有提交。
合并后如果无法推送提交,请使用带-f
的push命令git push -f origin branch-name
origin是您的远程仓库的名称。
答案 6 :(得分:2)
在Heroku中,您可能无法推送到master分支。 我只需要使用
启动一个新分支var input = ["apple", "banana", "pear", "kiwi", "orange"],
output = input.map(function(elem, index)
{
return index > 0 ? input.slice(0, index + 1).join('/') : elem;
});
console.log(JSON.stringify(output, null, '\t'));
然后使用
进行推送git checkout -b masterbranch
请尝试以上操作!
答案 7 :(得分:1)
对我来说,它是在设置了全局用户名/电子邮件后开始工作的。
设置全局用户名/电子邮件配置:
1.打开命令行。
2.设置您的用户名:
git config --global user.name "FIRST_NAME LAST_NAME"
git config --global user.email "MY_NAME@example.com"
git commit -m "comment"
git push heroku master
BOOM!它有效(对我来说至少)
答案 8 :(得分:1)
对我来说,强制推送操作有效。
git push heroku master --force
Case - 当从当前分支推送的提交被删除时(提交被推送到远程存储库)。
答案 9 :(得分:1)
对于从谷歌搜索到达此处的任何人都有相同的错误消息。另请注意,如果您使用的是 sqlite3
,则可能会出现问题答案 10 :(得分:1)
确保你正在推动正确的分支。我不在master
,并一直想知道为什么抱怨:P
答案 11 :(得分:1)
我按照以下步骤操作,对我有用。
fetch heroku
reset --hard heroku/master
然后尝试推送heroku'。 答案 12 :(得分:1)
您似乎并不完全是最新的。你需要做一个git pull和“--rebase”或者让它合并到你的集合中。
在此之后,你应该能够推动,因为这将是一个“快进”的改变,不会删除历史。
编辑:示例命令列表
git pull
git push
答案 13 :(得分:0)
我正在关注 this tutorial from freeCodeCamp 并遇到了同样的问题。
$ git push heroku master
不再有效,因为 GitHub is using more inclusive language as of October 2020 并更改了他们的分支语言以使用 main 而不是 master。
这个命令可以代替:
$ git push heroku main
答案 14 :(得分:0)
当我尝试 git pull heroku master
时,出现错误 fatal: refusing to merge unrelated histories
。
所以我尝试了 git pull heroku master --allow-unrelated-histories
并且它对我有用
答案 15 :(得分:0)
我在本地构建工作正常的情况下也遇到了类似的问题,但是当我将分支推送到heroku时,它将无法构建。问题是我的package.json中有一些devDependencies,在npm install期间没有安装,这导致我的构建失败。
如果您需要访问在其他buildpack或运行时在devDependencies下声明的软件包,则可以设置NPM_CONFIG_PRODUCTION=false or YARN_PRODUCTION=false
跳过修剪步骤。
还可以将devDependencies移至依赖项...
答案 16 :(得分:0)
如果您的heroku项目根目录与git分支根目录不在同一目录中,请使用以下命令:
git subtree push --prefix path/to/root heroku master
答案 17 :(得分:0)
只需将分支切换到main,它肯定会工作,并从Heroku远程删除项目。从本地删除所有分支,仅使用一个“主”。
以供参考:https://help.heroku.com/O0EXQZTA/how-do-i-switch-branches-from-master-to-main
答案 18 :(得分:0)
此外,请确保您的分支是干净的,并且没有未分级的内容 你可以用git status检查 存放或提交更改 然后运行命令
答案 19 :(得分:0)
如果我不是唯一一个使用某人的“FULL STACK OVERMEGASUPER EASY AND COOL”Udemy 课程的初学者,我正在写这篇文章(并且为了添加到可能的解决方案列表中)。我有以下错误:
remote: -----> Build
remote: Running build
remote:
remote: > shop@1.0.0 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! shop@1.0.0 build: `cd frontend && npm install && npm run build`
remote: npm ERR! Exit status 2
remote: npm ERR!
remote: npm ERR! Failed at the shop@1.0.0 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'
我尝试了其他用户提供的几乎所有内容。尽管如此,没有什么能解决我的问题。 然后,我终于有足够的精力查看日志(出于某种原因,我立即求助于互联网)。
解决方法如下:
这一次,构建成功。这是一个非常愚蠢的错误。终端告诉我出了什么问题,但我没有注意到。
答案 20 :(得分:0)
在heroku上部署Django应用时遇到了这个问题。
就我而言,requirements.txt,Procfile和runtime.txt文件位于子目录中。将它们移至存储库的根目录即可解决该问题。
Heroku专门在根目录中寻找requirements.txt来设置python环境。
P.S:
如果heroku在子目录中的wsgi文件存在之前无法访问,请通过以下线程-
解决How can I modify Procfile to run Gunicorn process in a non-standard folder on Heroku?
答案 21 :(得分:0)
您应该检查一些东西
我希望它能与您合作
答案 22 :(得分:0)
我遇到了同样的问题,并通过执行以下操作解决了该问题:
heroku config:set DISABLE_COLLECTSTATIC=1
这是python 3.7上的django项目
答案 23 :(得分:0)
对于我来说,我的包裹名称无效。我无法立即获取错误代码,因为我没有滚动足够远,但是错误是:
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
答案 24 :(得分:0)
还有另一个微妙的原因可能导致这种情况发生。如果您向应用程序中添加了一些新软件包或更新了现有软件包,请记住也要更新您的requirements.txt文件。
pip freeze > requirements.txt
然后,您可以按照通常的过程来推送存储库
git add .
git commit -m "Some changes"
git push heroku master
答案 25 :(得分:0)
可能是由于 yarn.lock文件已过期
只需运行以下命令
yarn install
git add yarn.lock
git commit -m "Updated Yarn lockfile"
git push heroku master
答案 26 :(得分:0)
另一个问题可能是由于使用了反引号,编译器(uglifier)不支持反引号。
要解决此问题,请将config.assets.js_compressor = :uglifier
替换为config.assets.js_compressor = Uglifier.new(harmony: true
)。
答案 27 :(得分:0)
请检查是否有2个锁文件(如果有),然后离开package-lock.json并删除另一个文件,例如yarn.lock
然后执行这些命令。
答案 28 :(得分:0)
在我的情况下清除buildpack工作
heroku buildpacks:clear
答案 29 :(得分:0)
简单的解决方案是确保你有一个名为&#34; Gemfile&#34;的文件。有资本&#34; G&#34;在你的app文件夹中! :)完全糟透了这不是文档,但整个上午试图弄明白。
答案 30 :(得分:0)
我收到此错误是因为我在我的requirements.txt文件中添加了一行错误:
simplejson=2.6.2
只有一个=
,应该有两个:
simplejson==2.6.2
纠正此问题修复了错误。
答案 31 :(得分:-1)
当您有一些尚未添加并提交到git的文件时,就会出现此问题。
inputLabelProp
答案 32 :(得分:-1)
对于我来说,删除package-lock.json
可以解决我的问题,
原来Heroku只接受一个package.json文件:p