WordPress mit Git

Ich stelle diese Frage, weil ich im Internet gesucht habe, aber keine richtige Lösung finden kann. Eigentlich möchte ich eine Lösung, bei der mehrere Entwickler an einem einzelnen WordPress-Projekt arbeiten können, ohne sich gegenseitig zu belästigen, aber da wir wissen, dass in WordPress alles in der database verwaltet wird, wie das Plugin aktiv ist und welches nicht.

Wenn Entwickler Plugins in ihrem lokalen Projekt installieren, als wie sie miteinander kommunizieren, sollte jeder das jeweilige Plugin oder Plugins installieren, und ein gewisses Missverständnis kann die Seite von anderen zerstören, wenn jeder Entwickler den Code drückt / zieht.

Sollten wir die database ebenfalls teilen, teilen wir die Plugin / Themes Einstellungen mit, so dass es zu keinen Konflikten oder kleinen Konflikten zwischen den Entwicklern kommen sollte.

Vielen Dank

Solutions Collecting From Web of "WordPress mit Git"

Git für Plugins :

  • Verwenden Sie Composer für Plugins, die bereits auf packagist oder wpackagist gepackt sind . Fügen Sie sie zu composer.json .
  • Verwenden Sie die TGM Plugin-Aktivierung für andere Plugins.

Verwenden Sie dann Git, um composer.json und die Änderungen im TGM-Plugin zu verwalten.

Der schwierigste Teil ist das Synchronisieren der database :

Definitiv sollten wir die database teilen. Rekonfigurieren Sie ein Plugin Einstellungen / Optionen ist keine gute Idee.

Es gibt viele Plugins , sowohl kostenlose als auch Premium, die helfen können.

Wenn Sie etwas manuell ausprobieren möchten, integrieren Sie wp-cli mit der Antwort von @Wyck.

Die beste Lösung, die ich gesehen habe, ist Bedrock ( https://roots.io/bedrock/ ) zu verwenden.

Die anderen Antworten auf diese Frage (Composer, und etwas, um Ihre Plugins zu verwalten) sind gute Antworten; aber Bedrock bietet eine systematisierte, unterstützte, dokumentierte, ständig verbesserte Art und Weise, dies zu tun, was einem eigenen Rollen vorzuziehen ist.

Denken Sie auch daran, dass Sie mehr als ein Git Repo haben können – eins für Ihr Thema, eins für jedes von Ihnen entwickelte Plugin und dann ein Master für die Installation von Bedrock / WordPress.

Mein Team hatte ein ähnliches Problem. Wir verwenden git, um unseren eigenen benutzerdefinierten Code wie Plugins und das Thema, das wir schreiben, zu versionieren. Wir verwenden Composer , um Abhängigkeiten wie Plugins zu verwalten, die wir nicht geschrieben haben. Wir überprüfen die composer.json- und composer.lock-Dateien in git, um alle miteinander zu synchronisieren. Von jedem Entwickler wird erwartet, dass er den git master-Zweig ausführt und das composer update häufig auf seinen Laufställen ausführt, so dass jeder auf dem neuesten Stand bleibt.

In der database kümmern sich die Entwickler hauptsächlich um die Konfiguration und wir verwenden oft WP-CLI , um die Konfiguration synchron zu halten. Zum Beispiel haben wir ein Shell-Skript, das einen WP-CLI-Befehl ausführt, um Plugins pro Host zu aktivieren oder zu deaktivieren. Einige Plugins werden beispielsweise nur auf unserem Content-Staging-Host verwendet, sodass das Skript auf jedem Host ausgeführt werden kann und nur das entsprechende Set auf diesem Host aktiviert wird. Einige Konfigurationen, die zu zeitaufwändig sind, werden nur dokumentiert und bei Bedarf manuell reproduziert.

Wir haben auch ein Perl-Skript, das die database vollständig von unserem Content-Staging-Server auf einen QA- oder Dev-Host klont. Die Entwickler können dies regelmäßig verwenden, wenn sie den gesamten aktuellen Inhalt haben wollen, obwohl das normalerweise weniger wichtig ist als der Code und die Konfiguration. Das Skript führt diese Aufgaben aus:

  • mySQL-Abbild der database des Inhalts-Staging-Servers, Tabellennamen ändern und in die database des Zielservers laden
  • Verwenden Sie wp-cli, um Referenzen auf den Staging-Server in der database zu ändern, um auf den Zielserver zu verweisen
  • Synchronisieren Sie das Upload-Verzeichnis auf dem Zielserver mit den Uploads des Content-Staging-Servers

Es gibt einige vielversprechende Lösungen für die schnelle Versionierung der database. VersionPress und Mergebot sind die beiden, von denen ich weiß, und vielleicht gibt es andere.

Ich habe mehr technische Details darüber geschrieben, wie wir WordPress einrichten, um mit git und Composer in meinem Blog zu arbeiten. Es war notwendig, mit WordPress Core in einem eigenen Verzeichnis zu laufen, um eine saubere Trennung zwischen dem Code, den wir in git und WordPress Core pflegen wollen, zu machen. Wir behandeln WordPress selbst als Abhängigkeit und verwalten es mit Composer.

Wenn es absolut notwendig ist, dass alle Plugins installiert sind, die an dem Thema oder einem benutzerdefinierten Plugin arbeiten, würde ich auch die database teilen.

Wir verwenden git und composer , um die verschiedenen Entwicklungsumgebungen auf dem neuesten Stand zu halten. Ziehen Sie einfach die letzten Änderungen und führen Sie den Composer erneut aus, und schon können Sie loslegen.

Zuallererst müssen wir die WordPress-Verzeichnisstruktur verstehen. WordPress-Verzeichnisstruktur ist nicht so benutzerfreundlich für die Verwendung von git mit ihm. Also würde ich vorschlagen, dass Sie dies mit eher git freundlich modifizierten Architektur verwenden. Nein, kein Grund zur Panik. Sie müssen das nicht unbedingt erstellen. Es gibt viele dieser Arten von Boilerplate oder strukturierte WordPress-System da draußen. Wähle einfach einen von ihnen aus und fange an zu programmieren.

Kommen Sie nun zu dem Punkt, wo Sie gut organisierten Code oder Maintainable-Code schreiben. Wir setzen unseren Code auf wp-content\themes\your-theme oder wp-content\themes\your-theme . Also in den meisten git freundlichen WordPress-Boilerplate ist der wp-content Teil getrennt. Und meistens ziehen sie das WordPress-Repo durch den composer . Es macht das ganze Projekt viel sauberer.

Plugins Synchronisierung ist ein weiterer wichtiger Teil. Es wäre besser, wenn Sie Ihr Plugin über composer installieren. Es macht den Projektcode viel sauberer. Hier erhalten Sie einen Überblick, wie Sie WordPress-Plugins über composer installieren können.

Kommen Sie nun zum wichtigsten Teil, wie man die database synchronisiert. Ich denke, es könnte leichter in 2 Möglichkeiten getan werden –

  • Alle Entwickler sollten eine entfernte database verwenden. Und oft erstellen Sie eine Sicherungskopie davon.
  • Automatisieren Sie die Importfunktion von WordPress. Es scheint kompliziert, aber es ist nicht. Mach einfach ein wenig Google, ich hoffe du kannst das tun.

Hoffe das hilft dir.