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

Heroku部署异常:原staging环境显示新文件夹代码问题排查

问题原因与解决方案

核心原因

你复制项目文件夹时,把隐藏的.git目录也一并复制了——这个目录存储着Git仓库的所有元数据(包括远程关联、提交历史、分支信息),导致两个项目文件夹共享同一个Git仓库实例。后续操作的连锁反应直接造成原staging环境被新代码覆盖:

  • 在新文件夹添加新远程的操作,实则修改了共享的.git仓库,原文件夹的远程配置也被悄悄改动;
  • 你在新文件夹修改的应用名称等代码,会被提交到这个共享仓库,当原文件夹执行rebase和推送时,这些修改被同步到了原staging环境;
  • 甚至可能你在操作时,误把原文件夹的staging远程指向改成了新应用的环境,导致推送的代码直接覆盖了原staging。

修复步骤

1. 拆分两个项目的Git仓库(必须执行)

两个项目需要完全独立的Git仓库,避免后续再出现互相干扰:

  • 处理原项目文件夹:
    # 删除共享的.git目录
    rm -rf .git
    # 重新初始化Git仓库
    git init
    git add .
    git commit -m "重新初始化原项目独立仓库"
    # 重新关联原Heroku staging和生产环境
    heroku git:remote -a 你的原staging应用名称
    git remote rename heroku staging
    heroku git:remote -a 你的原生产应用名称
    git remote rename heroku production
    
  • 处理新项目文件夹:
    rm -rf .git
    git init
    git add .
    git commit -m "重新初始化新项目独立仓库"
    # 关联新的Heroku staging环境
    heroku git:remote -a 你的新staging应用名称
    git remote rename heroku staging
    

2. 恢复原staging环境的正确代码

回到原项目文件夹,确认远程关联正确后,强制推送原代码覆盖错误内容:

# 检查远程地址是否正确指向原staging
git remote -v
# 强制推送原项目代码到staging
git push staging main --force

注意:--force会直接覆盖远程分支的现有内容,执行前确认你确实要恢复原项目代码到staging环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:12:20