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
相关产品推荐
相关产品推荐

