Git、Beanstalk、WordPress 终极部署方式

标签 git wordpress version-control deployment amazon-elastic-beanstalk beanstalk-svn

我使用 Git 和 Beanstalk 在本地开发 WordPress,然后使用 Beanstalk 的部署流程部署到生产服务器。 但是我如何将在生产服务器上所做的更改同步回我的本地开发/git 存储库?只要有人安装插件,服务器上就会发生更改。有没有办法将这些更改 pull 回本地?

对于初学者的理解,我很感激任何帮助。谢谢!

最佳答案

我运行一个 CMS,正如我在评论中所说,我在 manojlds 的帮助下设置了我的工作流程。我想扩展我们的实现,希望能帮助您处理用户创建的内容。

我将 gitolite 设置为我们的远程存储库。它很震撼。

我们的分支模型是这样工作的,以 WordPress 为上下文:

master - # this is the _vanilla_ install of wordpress with no modifications
prod - # the branch that the production server pushes/pulls to
dev - # dev environment pushes/pulls to, in our case a server
alpha - # really early development, ideas, etc - my personal branch that i work on mostly
features (opt) - # as needed, I'll make feature branches then merge them into the other branches.

我们的产品每天处理大约 40-45 个不同的静态文件,它有一个 cron,每天自动添加/提交用户更改的文件和数据。这会选择所有基于用户的更改,并且(在您的情况下)会选择插件安装。这很棒,因为您有他们安装的历史记录。

对代码库的实际更改通常在 alpha 中进行探索,然后 merge 到开发中。我们创建了一些 Hook ,当我们push 到开发分支时,开发服务器会自动 pull 新提交。然后它们会同步。

在开发环境中测试后,我将本地生产分支与远程同步,如前所述,远程每天都会提交用户内容。然后我将 mergecherry-pick 提交到产品中,然后 push 到 gitolite 上生产。之后,prod 服务器 pull ,大家都很高兴。

这听起来工作量很大,但实际上非常有效,尤其是在编写了一些钩子(Hook)脚本之后。我仍在调整我们的部署(例如,我几乎可以完全摆脱 alpha 分支并在本地处理 dev/feature ),但是实际上,我们获得了生产服务器的每日快照以及随时同步所有分支的能力,这是一个了不起的好处。

此外,关于您的 master 分支 - 将其保留为 WordPress 的原始安装非常棒,因为您实际上可以轻松地测试新版本升级。您可以只检查 master 然后运行更新,然后慢慢集成自定义。

关于Git、Beanstalk、WordPress 终极部署方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168129/

相关文章:

git 忽略多个匹配文件

linux - 在多个目录中执行命令

php - 在 Woocommerce 3.3 中设置某些产品类别或产品 ID 的最小数量

version-control - 生产环境中的 Julia 包版本控制

ruby-on-rails - 从 git ://github. com/pengwynn/linkedin.git 安装 linkedin 时如何解决 git 错误?

git - 是否可以选择在交互式 rebase 中恢复提交?

git - 专注于 Visual Studio Code Git 源代码控制管理器更改的快捷方式

php - 在 WooCommerce 中的价格前后添加文本(不包括订阅产品)

xcode - CLI 和其他客户端之间的“git diff”不一致

linux - 如果有 merge ,如何显示自上次提交以来更改的文件列表?