Git克隆Heroku应用程序-应用程序已过期

时间:2020-09-10 15:11:40

标签: ruby-on-rails git heroku

我看到克隆在Heroku上部署的Rails应用程序时出现问题。我要从旧的开发人员那里接手,因此就设计决策而言,我仍然可以占有一席之地。

我看到的问题是,我能够下载的该应用程序的克隆版本已经过时了。当我猛击Heroku实例时,可以知道它是正在运行的最新代码,但是当我克隆该应用程序时,它落后了一个月。

关于造成这种情况的原因,有人可以指出正确的方向吗?

2 个答案:

答案 0 :(得分:1)

您应该在“活动”选项卡上的Heroku仪表板上,在那里您将看到最新部署的版本,并提供了提交哈希值:

enter image description here

使用此信息,您可以轻松跟踪已部署的提交并将其与Github上的内容进行比较。

Heroku上的最新部署版本不太可能但从来没有在Github上推送过,一旦拥有已部署的提交哈希,您就可以轻松找到。

答案 1 :(得分:1)

首先,cloning from Heroku should be a last resort

Heroku应用程序的Git存储库仅用于部署目的。正式不支持从此存储库进行克隆作为功能,仅应作为最后的尝试。 请勿使用此存储库作为您应用的规范“原始”存储库。而是使用您自己的Git服务器或版本控制服务(例如GitHub)。

现在,解决当前的问题。以前的开发人员很可能是通过GitHub或其他某种方式而不是通过git push进行部署的:

如果您使用git push之外的任何其他方法部署应用,则您无法从Heroku克隆应用的源。其他部署方法不会更新您应用的Heroku Git存储库,导致heroku git:clone返回空的存储库。这些其他部署方法包括:

理想情况下,您确实应该从以前的开发人员那里获得源代码的最新副本。

这取决于您身在何处,是否存在任何合同等都有效的法律,但是您的客户可能拥有先前开发人员编写的源代码。即使这在法律上不是合法的(在许多司法管辖区是这样),我还是认为这在伦理上是正确的。一个好的策略是让您的客户拥有源代码所在的存储库。

但这现在无济于事。

我从未做过,但是您可以从当前部署的应用程序中尝试to retrieve the application slug

如果您没有使用git来部署应用程序,或者使用heroku git:clone仅创建了一个空的存储库,则可以下载上次部署应用程序时生成的插件。首先,使用heroku plugins:install heroku-slugs安装heroku-slugs CLI插件,然后运行:

heroku slugs:download -a APP_NAME

这将下载您的段并将其压缩到与您的应用程序同名的目录中。

然后,您可以手动将slug内容合并到现有的Git存储库中,并使用诸如“从Heroku slug更新整个应用程序”之类的消息进行大的提交。

相关问题