没有时间写一个全功能的答案(我知道有点蹩脚),但无论如何可能值得分享(我可能会编辑这个,因为我也计划写一篇关于这个的博客):
我在克隆Wordpress from Github (您甚至可以从这里对源树执行此操作:tierra/wordpress)
然后我将其用作通过subtree merge 在我自己的网站repo中(我甚至在git中遇到了一个bug,但它的解决方案是:-X subtree=...).
这意味着您可以有一些基于主干/版本分支的WP设置,可以完全破解,包括主题和插件。
由于这是一个独立的(本地)存储库,您可以通过ssh将其推送到其他存储库,例如:
位于应部署站点的远程主机上的(裸repo)有钩子可以使该主机上的另一个存储库实际合并到您刚才推送的更改中中概述了这一点A web-focused Git workflow (Nov 2008; by Joe Maller).
如果你有一个选择混凝土的配置切换器wp-config.php
根据它运行的系统,您甚至可以集中配置所有主机(开发、实时、登台、好友等)回购协议内部。
WP中的上游更改您只需在子树中获取和合并。
您只需更新和提交的插件。
部署很简单$ git push remote
.
在远程主机上为git repos、数据库和上载的文件运行每日备份,这既便宜又方便开发人员,而且非常灵活。这对于单个开发人员设置以及小型团队都很有效,因为每个人都可以从远程的裸机复制中签出。
有一些注意事项:
git别名git accept-theirs
和git accept-theirs
如果有冲突的基线更改,您可以清楚地知道您喜欢处理哪一个更改,这会很有帮助。您可以在这里找到:Simple tool to \'accept theirs\' or \'accept mine\' on a whole file using git你好,多莉。整整一代人的诅咒。您需要始终保持稳定现在,请按照上面列出的清单和设置:
1、希望在内部将我的git环境放在自己的服务器上,而不是使用Github处理repos。
Github在这里只处理上游回购(Wordpress),而不是您自己的回购。
2、在git分支创建时自动创建子域(development.domain.com、ryan.development.domain.com)-可能一些shell脚本挂钩会非常适合这样做。
概述的设置是一种模块化方法,每个站点有一个回购。它可以处理任意多个开发主机,也可以通过多站点安装来处理多个域,但在这种方法中,这将被视为一个wordpress设置。
3、Phing PHP/Shell脚本处理db迁移(如下所示http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ ) 在推送时处理序列化数据库替换
这里不需要这样做,因为只有代码处于版本控制之下,数据库在开发(、暂存)和生产之间是独立的。
您可能正在寻找一个能够正确进行域迁移的安装脚本,但即使有更好的代码(可用)来处理序列化数据搜索和替换,在这里的设置中,通常也没有必要,因为您只需将更改推到活动状态,对于测试用例,您可以在开发数据库中快速创建内容,这通常是最小的问题(根据我的实际经验,您可能会有所不同,但我也建议将此类数据库迁移相关主题保留在网站上,但请询问他们)。
我在自己的服务器上运行了大约200个站点,并希望开始将这些站点实施到一个强大的git工作流环境中,以便更好地简化我的工作。
我无法想象这些网站在一个字符串git工作流环境下会变成什么样子。也许您在这里管理的配置脚本和配置数据将保持在git版本控制之下。这可能有道理。否则,就网站数量而言,我认为将所有这些网站都保存在一个git回购中是毫无意义的。甚至可能不是其中之一,因为我上面概述的是针对您开发的站点(包括WP核心代码),而不仅仅是针对安装任务。因此,您可能首先需要自己创建一些这200个站点的小地图,以及它们如何相互作用,以及这些站点由哪些包(WP核心、插件、主题)组成。第一件事可能是创建一个电子表格/矩阵,并将所有站点放入其中。
然后可以将其另存为CSV,将其置于版本控制之下,并使部署脚本基于该文件执行其工作。
如果我在自动化任务方面学到了一些东西:遵循Unix理念,使用现有的和运行良好的工具(最好花半天时间阅读一些命令,然后尝试寻找替代方法,因为对于大多数工作来说,问题已经解决了),并专注于命令行工具。他们是最强大的。