您至少有两个选择。首先是使用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