WordPress的Git


21

我问这个问题是因为我在互联网上搜索,但找不到正确的解决方案。实际上,我想要一个解决方案,其中多个开发人员可以在单个wordpress项目上工作,而不会互相干扰。但是,众所周知,在wordpress中,所有东西都保存在数据库中,例如哪个插件处于活动状态,哪个插件不处于活动状态。

如果开发人员将插件安装到其本地项目中,而不是他们如何彼此通信,则每个人都应安装该特定的一个或多个插件等,如果每个开发人员都推/拉代码,则某些沟通不畅会破坏其他站点。

我们是否也应该共享数据库,以共享插件/主题设置,这样开发人员之间就不会有冲突或几乎没有冲突。

谢谢


5
wp-cli.org大大帮助您的工作流程。
jgraup

1
如果可能,请切换到jekyll或类似名称。
詹斯·肖德

Jekyll被烘焙到github中,显然可以与git一起很好地工作……
DaveRGP '16

FWIW,当使用类似Git的东西时,冲突和冲突并没有完全消除,它只是让您避免所说的冲突,直到您准备好“合并”它们为止。

1
所有开发人员都可以共享一个公共托管的公共数据库,并委托GIT进行版本控制吗?
MonkeyZeus

Answers:


18

Git插件

然后,使用Git来管理composer.jsonTGM插件中的更改。

最难的部分是同步数据库

当然,我们应该共享数据库。重新配置插件设置/选项不是一个好主意。

很多插件,免费和高级,可以提供帮助。

如果您想手动尝试某些操作,请将wp-cli与@Wyck 的答案合并。


8

我的团队也面临类似的问题。我们使用git对自己的自定义代码(例如插件和编写的主题)进行版本控制。我们使用Composer来管理依赖项,例如我们未编写的插件。我们将composer.json和composer.lock文件检入git中,以使所有人保持同步。每个开发人员都应该拉git master分支并composer update经常在游戏围栏上运行,以便每个人都保持最新状态。

在数据库中,开发人员主要关心配置,我们经常使用WP-CLI保持配置同步。例如,我们有一个运行WP-CLI命令的shell脚本,该脚本可基于每个主机启用或禁用插件。例如,某些插件仅在我们的内容登台主机上使用,因此该脚本可以在任何主机上运行,​​并且只会在该主机上启用适当的设置。只是记录了一些太费时间而无法编写脚本的配置,并在需要时手动进行了复制。

我们还有一个perl脚本,可以将数据库从内容登台服务器完全克隆到QA或开发主机上。如果开发人员需要所有当前内容,则可以定期使用此功能,尽管这通常不如拥有代码和配置重要。该脚本执行以下任务:

  • 内容分级服务器的数据库的mySQL转储,更改表名称,加载到目标服务器的数据库中
  • 使用wp-cli更改对数据库中登台服务器的引用以引用目标服务器
  • 将目标服务器上的上载目录与内容登台服务器的上载同步

有一些有前途的解决方案可以很快对数据库进行实际版本控制。我知道的是VersionPressMergebot,也许还有其他两个。

我在博客上写下了有关如何设置WordPress以与git和Composer一起使用的更多技术细节。有必要在其自己的目录中运行WordPress核心,以使我们想要在git中维护的代码与WordPress核心之间完全分开。我们将WordPress本身视为依赖项,并使用Composer对其进行管理。


7

我所见过的最好的解决方案是使用Bedrock(https://roots.io/bedrock/)。

这个问题的其他答案(Composer,以及一些用于管理插件的东西)都是很好的答案。但是Bedrock提供了系统的,受支持的,有记录的,不断改进的方法,比滚动自己的方法更可取。

另外,请记住,您可以有多个git repo –一个用于您的主题,一个用于您开发的每个自定义插件,然后一个“主”用于基础岩石/ WordPress安装本身。


“ Bedrock提供了系统的,受支持的,记录在案的,不断改进的方法,比滚动自己的方法更可取。” 可以确认,基岩很棒!与Sage(由同一个人,Roots开发)一起使用,整个团队的自定义开发是可管理的。仍然有麻烦,并且@ Dan9答案更完整,但是我不能唱基德罗克的赞誉!
samrap '16

作为一名MVC开发人员,我同意,但是我在WordPress网站上从事的工作类型主要是基于前端的,因此Sage中的资产管理设置值得偶尔进行的不良实践。
samrap '16

0

如果绝对有必要在主题上安装所有相同的插件或自定义插件,那么我也将共享数据库。

我们使用git和composer来保持不同的开发环境为最新。只需获取最新的更改并重新运行作曲器,便可以开始了。


0

首先,我们需要了解WordPress目录结构。WordPress目录结构使用git起来并不友好。因此,我建议您将其与相当git友好的修改后的体系结构一起使用。不,不必惊慌。您不必一定要创建它。那里有很多样板或结构化的WordPress系统。只需选择其中之一并开始编码。

现在到了编写井井有条的代码或可维护的代码的地步。实际上,我们将代码放在wp-content\themes\your-theme或上wp-content\themes\your-theme。因此,在大多数git友好的WordPress样板中,该wp-content部分是分开的。他们大多是通过WordPress存储库composer。它使整个项目变得更加整洁。

插件同步是另一个重要部分。如果您通过安装插件会更好composer。它使项目代码更加整洁。在这里,您将获得有关如何通过安装WordPress插件的概述composer

现在到最关键的部分,如何同步数据库。我认为可以通过以下两种方式更轻松地完成此操作-

  • 所有开发人员都应使用一个远程数据库。并经常为其创建备份。
  • 自动化WordPress的导入导出功能。看起来很复杂,但事实并非如此。只是做一些谷歌,希望你能做到这一点。

希望对您有帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.