【发布时间】:2020-01-15 16:30:29
【问题描述】:
我有以下场景。
12 月 6 日,我和我的团队将我们的代码库部署到生产环境中。从那时起,我们进行了一些更改,这些更改以我们没有预见到的方式破坏了代码库。该代码库是一个旧的遗留代码库,几乎没有任何测试、覆盖、大量代码异味和非常紧密耦合的模型。尽管我们尽最大努力进行零碎的重构和测试,但应用还是崩溃了,现在我们很难确定如何修复应用。我们的开发实践不提倡持续部署,并且每月部署大量代码(我们正在努力)。我们没有压力,但我们很难找到一个像以前那样工作的提交。
我的问题是,是否有办法让当前正在生产的代码库保持原样,并将其作为我们的起点。例如,我们使用 capistrano 通过 git 将代码库部署到 EC2 上。 git、AWS EC2 或 Capistrano 是否可以让我们简单地从那里获取代码并简单地使用它来重置我们的 git 代码?
这听起来并不容易,但我认为也许有人知道如何做到这一点。有没有人知道a)的方法。获取生产代码 b)。使用该代码副本作为参考,将我们的开发代码返回到该点。
感谢您的帮助。
【问题讨论】:
-
你看不到 HEAD 指向生产的哪个提交并返回那个提交吗?
-
是的,就像 Corentin 暗示的那样,类似于
git branch recovery origin/HEAD的东西将从这一点重新创建一个分支。 -
这就是为什么你应该在实际发布时创建一个单独的分支(并在名称中使用版本号来调用它)。
标签: ruby-on-rails git amazon-web-services capistrano