我有 2 个站点(登台和直播)。我想要一个中央 git 存储库,我们从中推送和部署两个站点。
我还需要捕获临时站点和实时站点(插件安装、主题、扩展等)上发生的代码更改。我需要最好的结构的想法。
显然,我们的团队需要在本地保存中央仓库的工作副本。谢谢!
我有 2 个站点(登台和直播)。我想要一个中央 git 存储库,我们从中推送和部署两个站点。
我还需要捕获临时站点和实时站点(插件安装、主题、扩展等)上发生的代码更改。我需要最好的结构的想法。
显然,我们的团队需要在本地保存中央仓库的工作副本。谢谢!
我们使用的是两个分支master
和production
. 通常开发master
是在登台时签出的。
一旦一切正常,我们将生产重置为掌握并强制推送。production
然后我们在签出的地方进行直播。执行所有这些操作的脚本会在执行所有操作之前验证现场没有未推送的更改。
对于需要在其中完成的修补程序,production
我们有一个挑选策略:需要master
立即挑选需要进行的更改。
值得注意的是,我们根本不合并。我们做到了,但这并没有成功。
您可以将 Capistrano 与多阶段部署一起使用来处理您想要的。正在部署的 repo 几乎可以驻留在应用服务器环境可以访问的任何地方。
例如,在最近的一个项目中,我们使用了一个私有 GitHub 存储库作为部署存储库。我们在应用服务器上设置 SSH 密钥以通过 GitHub 进行身份验证,并且可以根据我们从本地工作站发出的 Capistrano 命令部署到暂存或生产环境。我们的本地 Capistrano 实例将远程(通过 SSH)告诉应用服务器从 Github 上的相应分支签出并获取最新的内容到它自己的本地 repo,将最新的代码复制到新目录,然后检查任务清单(配置修改、资产编译、数据库迁移等)。成功部署后,Capistrano 会告诉服务器切换到最新代码。任何打嗝,它都会简单地回滚部署。
部署命令很简单:cap deploy
或cap production deploy