如何将我的代码库恢复为我最近的部署?

我有以下情况。

12月6日,我和我的团队将代码库部署到生产环境中。从那时起,我们进行了一些更改,这些更改以我们未曾预见的方式破坏了代码库。该代码库是一个老式的旧代码库,几乎没有任何测试,覆盖范围,很多代码味道以及非常紧密耦合的模型。尽管我们在零散的重构和测试方面付出了最大的努力,但该应用程序还是崩溃了,现在我们很难确定如何修复该应用程序。我们的开发实践不主张持续部署,并且每月都会部署大量代码(我们正在努力)。我们没有压力,但是我们很难找到一个像以前一样有效的提交。

我的问题是,是否有办法按原样获取当前正在生产中的代码库,并将其作为起点。例如,我们使用capistrano通过git将代码库部署到EC2上。 git,AWS EC2或Capistrano能否允许我们从那里简单地获取代码并简单地使用它来重置git代码?

这听起来并不容易,但是我认为也许有人知道这样做的方法。有没有人知道a)的方法。在生产b)上获取代码。使用该代码的副本作为参考,将我们的开发代码返回到该点。

谢谢您的帮助。

mengyingyu2009 回答:如何将我的代码库恢复为我最近的部署?

您至少有两个选择。首先是使用capistrano。按照here步骤,您可以设置以下capistrano脚本:

namespace :deploy do
  desc 'Show deployed revision'
  task :revision do
    on roles :app do |host|
      within current_path do
        info "#{host}: #{capture :cat,'REVISION'}"
      end
    end
  end
end

这将允许您呼叫capistrano production deploy:revision。将会输出如下内容:

$ cap production deploy:revision
00:00 deploy:revision
      app01.example.com: cf8734ece3938fc67262ad5e0d4336f820689307
      app02.example.com: cf8734ece3938fc67262ad5e0d4336f820689307
      app03.example.com: cf8734ece3938fc67262ad5e0d4336f820689307

有您的提交哈希cf8734ece3938fc67262ad5e0d4336f820689307。然后,您只需git checkout d231b7abd6e4183e037817780738c54f1fbaf1fa即可将您带到您想要的确切提交。现在使用

新建一个分支
git checkout -b 'last_deployed_code'
git push origin last_deployed_code`

或@RomainValeri评论:

git branch recovery origin/cf8734ece3938fc67262ad5e0d4336f820689307

您现在在github上有了一个新分支,其中包含您想要的确切代码。

您的第二个选项比较难看,但效果同样不错。假设您对scp感到满意(如果不是,请多读here-这确实很简单),将SSH插入服务器,导航到“ app”目录,然后将整个目录复制到本地计算机。

然后您可以创建一个新分支,也可以简单地强制推送至master和he presto,您在github上就有了一个分支,可以完全镜像您已部署的代码。第一个选项绝对是首选,因为实际上您可能不想从prod应用程序目录中复制某些配置文件

本文链接:https://www.f2er.com/2763740.html

大家都在问