You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

推送全栈应用后端至Heroku时出现[remote rejected]错误(pre-receive hook declined)的技术求助

解决Heroku推送失败(pre-receive hook declined)的问题

从你给出的错误信息来看,核心有两个问题导致推送失败:Heroku无法检测到项目的默认语言,以及重复提交了相同版本的代码。下面是针对性的解决步骤:

1. 修复语言检测失败的问题

错误日志里明确提到:! No default language could be detected for this app.,这是Heroku构建失败的主要原因,解决方法如下:

  • 确认你的后端项目根目录(也就是你执行Git命令的目录,或Git仓库的根目录)包含对应语言的核心配置文件:
    • 如果是Node.js后端,必须有package.json,而且文件里要包含scripts.start字段(比如"start": "node server.js"),Heroku依赖这个脚本启动应用
    • 检查是否存在多余的包管理文件:哪怕你没装yarn,如果不小心生成了yarn.lock,删掉它并提交修改:
      git rm yarn.lock
      git commit -m "Remove accidental yarn lock file"
      
  • 确认Git仓库结构正确:你当前执行命令的路径是C:\Users\Amman\dunder-mifflin\src\backend,要确保这个目录是Git仓库的根(或者你要推送的代码就是这个目录下的所有内容)。如果Git仓库根在dunder-mifflin,Heroku会读取根目录的文件,可能找不到后端的配置,这时候需要调整仓库结构,或者单独为后端创建Git仓库。

2. 解决重复提交版本的问题

错误里的警告提示:The same version of this code has already been built,说明你推送的代码和之前的提交哈希完全一致,Heroku会拒绝重复构建,解决方法:

  • 如果你在非master分支开发,推送时需要指定分支映射到Heroku的主分支(现在Heroku默认主分支是main,不是master),用这个命令:
    git push heroku <你的本地分支名>:main
    
  • 如果确实需要重新部署相同代码,创建一个空提交强制触发构建:
    git commit --allow-empty -m "Force trigger Heroku rebuild"
    git push heroku master
    

最后验证

完成上面的步骤后,重新执行git push heroku master(或者对应的分支映射命令),应该就能成功推送了。

内容的提问来源于stack exchange,提问作者AmmanM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 13:02:30