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

Heroku新手求助:推送应用至Heroku时遇推送拒绝错误

解决Heroku部署Push被拒绝问题

首先明确:git add .执行后无反馈是正常现象——当没有未追踪/修改的文件需要添加,或所有文件已被Git追踪时,该命令不会输出任何内容。你可以通过以下命令确认add和commit是否有效:

git status  # 正常会显示"nothing to commit, working tree clean"
git log     # 应能看到你创建的"Initial Commit"提交记录

接下来针对pre-receive hook declined错误,按以下步骤排查:

1. 检查是否存在Procfile

Heroku需要Procfile指定Web服务启动命令,Django项目必须创建该文件(文件名就是Procfile,无后缀),内容如下(替换your_project_name为你的Django项目根目录下wsgi.py所在的文件夹名):

web: gunicorn your_project_name.wsgi --log-file -

创建后重新执行:

git add Procfile
git commit -m "Add Procfile for Heroku deployment"
git push heroku master

2. 调整requirements.txt依赖

psycopg2在Heroku环境中有时会因编译问题导致部署失败,建议替换为psycopg2-binary:

dj-database-url>=0.5.0
Django>=3.0.6
gunicorn>=20.0.4
psycopg2-binary>=2.8.5  # 替换原psycopg2条目
whitenoise>=5.1.0
requests>=2.23.0

更新后重新提交推送:

git add requirements.txt
git commit -m "Update psycopg2 to psycopg2-binary"
git push heroku master

3. 确认分支匹配

当前Heroku默认部署分支为main,若你推送的是master分支,可尝试指定分支推送:

git push heroku master:main

也可登录Heroku控制台进入项目,在设置中将默认部署分支改为master。

4. 查看详细错误日志

若以上步骤无效,通过命令查看Heroku部署日志获取具体拒绝原因:

heroku logs --tail

或登录Heroku Dashboard进入项目,查看「Deploy」标签下的日志,日志会明确标注pre-receive hook拒绝的具体问题(比如依赖缺失、配置错误等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:25:22