【问题标题】:How to incorporate WordPress automatic updates with Git as version control?如何将 WordPress 自动更新与 Git 结合起来作为版本控制?
【发布时间】:2015-09-16 04:18:42
【问题描述】:

我正在尝试为一项非常艰巨的任务找到解决方案:正确控制 WordPress 的版本,特别是在使用自动更新时。

WordPress 允许用户通过单击一个按钮来更新 WordPress 核心文件、主题和插件,从而实现了很多简单性。但是,当您将该网站置于使用 Git 之类的版本控制之下时会发生什么?一旦我们单击“立即更新”按钮,我们的 Git 存储库就会不同步,因此一开始就违背了创建 Git 存储库的目的。

我一直在寻找解决这个问题的方法,我所能找到的只是通过将组件分解为 Git 子模块来构建 Wordpress 安装的不同方法。最流行的例子之一是WordPress-Skeleton 模板。

虽然这可以对 WordPress 的每个模块/组件进行版本控制,但它仍然不允许用户使用 WordPress 中的自动更新按钮,因为这会更新生产中的文件,但不会将这些更改提交到你的 Git 存储库。

在理想情况下,我们应该能够对一个存储库中的所有文件进行版本控制,然后当我们单击“立即更新”按钮时,它应该自动更新我们的 Git 存储库以进行修改。有谁知道如何做到这一点?

我在想的一件事是创建一个插件,该插件将侦听更新事件并在触发该挂钩后立即自动提交更改。不确定这是否是最好的方法。

如果有人有更好的方法我可以做到这一点,请告诉我。

【问题讨论】:

  • 我首先会将 WordPress 核心排除在 git 之外——以及任何第三方插件和主题。利用作曲家并以这种方式带来一切。如果有人更新,您仍然会遇到问题 - 老实说,没有简单的方法可以正确地做到这一点。但是 composer 会让你很容易保持一个存储库的匹配。我在 git 中保存的唯一内容是我自己的自定义主题和 wp-config.php 等以及任何已编辑的内容。 roots.io/using-composer-with-wordpress 是一个很好的起点。您不需要将任何已经受版本控制的文件存储在其他地方
  • wordpress下有集成git的wordpress插件:versionpress.net
  • @SimonPollard 问题是如果 WordPress 受版本控制,如何使用 WordPress 自动更新。即使你不使用 Git,如果你使用 Composer 之类的东西,你仍然无法使用 WP 自动更新。使用 composer 方法,您仍然需要进入服务器并更新 WordPress 依赖项。
  • 我可能只是让生产环境中的 WordPress 自行更新,然后在下次部署时更新 composer 中的依赖项。您还可以有一个运行 composer install 的 cronjob 以使您的依赖项保持最新,并为 WordPress 使用松散的版本字符串,允许根据您的需要进行次要/主要更新。

标签: wordpress git version-control git-submodules auto-update


【解决方案1】:

问题似乎是“立即更新”按钮触发了“更新生产中的文件”,这不是 git 存储库的一部分。

除非他们可以:repo git 可以有一个 master 分支,专门用于WordPress-Skeleton 中描述的 WP 通常的树结构,以及一个用于监视生产中这些文件的更改的第二个分支。

Since git 2.5, you can have multiple worktrees per repo(这是“开箱即用的部分”)。
这意味着您可以将另一个文件夹(在原始 git 存储库之外)声明为同一 git 存储库的工作树。

一旦更新更改了“生产中的文件”,一个简单的git add -A; git commit 就可以检测到所述更改并提交它们(在专用分支中)。

【讨论】:

  • 这谈到了 Git 方面的事情,但它对 WordPress 方面并没有太大帮助。部分问题是找出执行提交作为 WordPress 自动更新的一部分的最佳方式(更新后无需手动进入并运行 git addgit commit)。
  • @Agop 我明白了,但必须解决 git 方面的问题。
【解决方案2】:

首先,您不会对完整的 WP 文件夹进行版本控制,只对它们不会受到更新影响的主题和插件文件夹进行版本控制。所以

【讨论】:

  • 为什么这个答案被否决了?它是正确的! WP 文件和文件夹是部署过程的一部分,而不是源代码!如果您的主题依赖于安装某些插件,那么它要么需要将这些插件包含在主题文件夹中,要么需要有逻辑要求用户安装所述插件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 2018-10-13
  • 1970-01-01
  • 2016-04-29
相关资源
最近更新 更多