我被要求帮助开发人员失踪的项目,并且几乎没有关于该项目的文档。
“项目托管在heroku上,版本控制系统是GitHub”是产品所有者可以告诉我的。他将我添加到了heroku实例中,所以我可以访问它,但他不知道代码在GitHub上的位置。
问题:有没有办法找出连接到Heroku实例的GitHub存储库是什么,只使用我们在Heroku中的信息?
答案 0 :(得分:2)
根据所有配置的方式,这可能很难。 Heroku和GitHub之间没有固有的依赖关系,Heroku完全不可能知道代码存在于GitHub上。
例如,Heroku和GitHub之间唯一的“连接”可能是其他开发人员的本地环境,其中配置了两个遥控器:
[GitHub] ---.
\
}--- [Local dev environment]
/
[Heroku] ---'
Heroku 也可能了解GitHub。两者之间有可选的集成。
在页面底部附近,您会看到连接到GitHub 部分。
这将有关于将应用程序连接到GitHub的说明(在这种情况下,集成不存在)或将显示已连接到特定user/repository
(其中如果你有答案)。
如果应用程序未连接到GitHub存储库,则您的选择是有限的。
最好找到原始存储库(可能通过与之前的开发人员联系,或通过一些调查),但Heroku确实提供了一个在这里很有用的功能。
使用heroku git:clone -a <app-name>
直接从Heroku克隆存储库。注意
Heroku主要为部署提供git服务,并且提供从中克隆的能力是为了方便。我们强烈建议您将代码存储在另一个git存储库(如GitHub)中,并将其视为规范。
我必须强调,这应该不成为您的常规工作流程。在您的位置,我会立即将此代码推送到我选择的云存储库提供程序,并将其用作新的主代码存储库。
如果您以后发现原始存储库,那么将新存储库与旧存储库进行比较将会很有趣。例如,旧存储库中可能存在功能分支,这些功能分支无法通过变通方法捕获。
如果其他开发者回来,这将更加重要;您可能希望共享相同的主存储库。