如何通过GitHub方式从Heroku克隆下载已部署的应用代码
通过GitHub克隆对应Heroku应用代码的操作方法
核心前提说明:Heroku自身的Git仓库和你绑定用于部署的GitHub仓库是相互独立的存储实例。如果部署阶段你只把代码推送到Heroku Git、从未向关联的GitHub仓库推送过代码,直接克隆GitHub仓库得到空文件是正常现象,不属于操作错误。
标准操作流程
- 先确认绑定的正确GitHub仓库地址
- 登录Heroku控制台进入目标应用详情页
- 切换到「Deploy」部署标签页,确认部署方式选中的是GitHub连接模式
- 在Connected to GitHub板块可以直接看到当前绑定的GitHub账号、对应仓库名、部署用的目标分支,直接复制这里显示的仓库地址即可,不要自行在GitHub搜索同名仓库,避免找错空仓库
- 本地执行克隆
- 打开本地终端,进入你计划存放代码的目录
- 执行标准Git克隆命令,替换为你刚才复制的仓库地址:
git clone 你复制的GitHub仓库地址 - 克隆完成后进入项目目录,切换到之前确认的部署分支(常见为main/master或自定义部署分支),就能拿到对应部署版本的代码
克隆得到空文件的排查&解决
如果按上述步骤操作后克隆到的是空仓库,基本是以下两种原因:
- 绑定GitHub仓库时选错了空仓库,后续实际部署是通过Heroku Git直接推送代码完成的,代码只存在Heroku侧的Git仓库里,没有同步到GitHub
- 绑定GitHub仓库后从未向该GitHub仓库推送过代码,所有部署操作都是直接推送到Heroku Git完成的
对应解决方式:
- 如果你需要的是Heroku上当前实际运行的最新代码,优先通过Heroku Git拉取运行时代码,拉取后再手动推送到你的GitHub仓库即可,后续就能正常从GitHub克隆:
# 先登录Heroku账号 heroku login # 拉取对应Heroku应用的代码 heroku git:clone -a 你的Heroku应用名称 - 拉取完成后给本地仓库添加GitHub远程仓库地址,把代码推送到GitHub仓库,后续两边代码就可以保持同步
- 补充提示:如果你当初是通过GitHub Actions触发自动部署到Heroku的,GitHub仓库一定存储了完整代码,出现空克隆问题100%是仓库地址找错了,回到Heroku部署页核对绑定的仓库信息即可。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

