Git推Heroku提示分支落后但本地已同步,求解决方案
解决Heroku推送分支落后但拉取显示最新的问题
先确认远程关联是否正确
先检查本地和Heroku的远程仓库关联,以及分支追踪情况:
git remote -v git branch -vv
要保证heroku远程指向你的Heroku仓库地址,且本地要推送的分支(比如main)追踪的是heroku/main,而非其他远程仓库的分支。
直接拉取Heroku的分支同步
别拉origin,直接拉Heroku的分支到本地,哪怕历史不相关也强制合并:
git pull heroku main --allow-unrelated-histories
如果弹出冲突,手动解决冲突后提交,再尝试推送。
安全强制推送到Heroku
如果确定本地代码是最终要部署的版本,且不需要保留Heroku上的旧提交,用更安全的强制推送命令:
git push heroku main --force-with-lease
这个命令会先检查Heroku的分支有没有你没见过的新提交,避免误删他人的变更,比单纯的--force更稳妥。
重置本地分支后重新提交
要是上面的方法都没用,先备份当前分支,再把本地分支重置到Heroku的最新状态,重新添加你的变更:
# 备份当前分支,防止丢失代码 git branch backup-main # 把本地main分支硬重置到Heroku的最新状态 git reset --hard heroku/main # 重新添加并提交你的API变更 git add . git commit -m "提交API更新" # 推送到Heroku git push heroku main
额外排查点
- 检查有没有 stash 的未提交变更:
git stash list,如果有,用git stash pop恢复后再处理。 - 确认当前操作的是正确的分支:
git branch,别在错误分支上忙活。
内容的提问来源于stack exchange,提问作者CuriousDevie
相关产品推荐
相关产品推荐

