Wie integriere ich automatische WordPress-Updates mit Git als Versionskontrolle?

Lesezeit: 4 Minuten

Benutzer-Avatar
Farhan Ahmad

Ich versuche eine Lösung für eine sehr schwierige Aufgabe zu finden: ordnungsgemäße Versionskontrolle von WordPressinsbesondere beim Arbeiten mit automatischen Updates.

WordPress ermöglicht viel Einfachheit, indem es Benutzern ermöglicht, WordPress-Kerndateien, Themen und Plugins durch einfaches Klicken auf eine Schaltfläche zu aktualisieren. Aber was passiert, wenn Sie diese Website mit etwas wie Git unter Versionskontrolle haben? Sobald wir auf die Schaltfläche „Jetzt aktualisieren“ klicken, ist unser Git-Repo nicht mehr synchron und verfehlt daher den Zweck, überhaupt ein Git-Repo zu erstellen.

Ich habe nach Möglichkeiten gesucht, dieses Problem zu umgehen, und alles, was ich finden konnte, waren verschiedene Möglichkeiten, die WordPress-Installation zu strukturieren, indem ich Komponenten in Git-Submodule aufteilte. Eines der bekanntesten Beispiele ist die WordPress-Skelett Schablone.

Obwohl dies zur Versionskontrolle jedes Moduls / jeder Komponente von WordPress dient, erlaubt es dem Benutzer immer noch nicht, die Schaltfläche für automatische Updates in WordPress zu verwenden, da dies die Dateien in der Produktion aktualisiert, diese Änderungen jedoch nicht in Ihr Git-Repo überträgt .

In einer idealen Welt sollten wir in der Lage sein, alle Dateien in einem Repository zu versionieren, und wenn wir dann auf die Schaltfläche „Jetzt aktualisieren“ klicken, sollte unser Git-Repo automatisch mit den Änderungen aktualisiert werden. Weiß jemand, wie dies bewerkstelligt werden kann?

Eines der Dinge, an die ich dachte, war, ein Plugin zu erstellen, das auf Update-Ereignisse wartet und Änderungen automatisch festschreibt, sobald dieser Hook ausgelöst wird. Ich bin mir nicht sicher, ob dies der beste Ansatz ist.

Bitte lassen Sie mich wissen, wenn jemand einen besseren Weg hat, wie ich dies erreichen kann.

  • Ich würde erstens den WordPress-Kern von Git fernhalten – und auch alle Plugins und Themes von Drittanbietern. Nutzen Sie Composer und bringen Sie alles auf diese Weise. Sie haben immer noch das Problem, wenn jemand aktualisiert – es gibt keine einfache Möglichkeit, dies korrekt zu tun, um ehrlich zu sein. Composer wird es Ihnen jedoch leicht machen, ein Repository abgeglichen zu halten. Das einzige, was ich in Git speichere, ist mein eigenes benutzerdefiniertes Design und wp-config.php usw. und alles, was bearbeitet wurde. root.io/using-composer-with-wordpress ist ein guter Ausgangspunkt. Sie sollten keine Dateien speichern müssen, die bereits an anderer Stelle unter Versionskontrolle stehen

    – Simon Pollard

    29. April 2016 um 15:39 Uhr

  • Es gibt ein WordPress-Plugin, das Git unter WordPress integriert: versionpress.net

    – Bipi

    4. Mai 2016 um 10:10 Uhr

  • @SimonPollard Die Frage ist, wie man die automatischen WordPress-Updates verwendet, wenn WordPress unter Versionskontrolle steht. Selbst wenn Sie Git nicht verwenden, können Sie, wenn Sie etwas wie Composer verwenden, immer noch keine automatischen WP-Updates verwenden. Bei der Composer-Methode müssen Sie noch auf den Server gehen und die WordPress-Abhängigkeit aktualisieren.

    – Ago

    4. Mai 2016 um 14:44 Uhr


  • Ich würde das WordPress in der Produktion wahrscheinlich einfach selbst aktualisieren lassen und dann die Abhängigkeit in Composer aktualisieren, wenn ich es das nächste Mal bereitstelle. Sie könnten auch einen Cronjob haben, der ausgeführt wird composer install um Ihre Abhängigkeiten auf dem neuesten Stand zu halten, und verwenden Sie eine lose Versionszeichenfolge für WordPress, die je nach Ihren Anforderungen kleinere/größere Updates zulässt.

    – Steen Schütt

    21. September 2021 um 10:40 Uhr

Benutzer-Avatar
VonC

Es scheint, dass das Problem darin besteht, dass die Schaltfläche “Jetzt aktualisieren” “Dateien in der Produktion aktualisieren” auslöst, die nicht Teil des Git-Repos sind.

Außer sie könnten: Das Repo-Git könnte den Master-Zweig haben, der der üblichen Baumstruktur von WP gewidmet ist, wie in beschrieben WordPress-Skelettund einen zweiten Zweig zum Überwachen der Änderungen an diesen Dateien in der Produktion.

Seit Git 2.5 ist das möglich mehrere Worktrees pro Repo (das ist der “Out-of-the-Box-Teil”).
Das bedeutet, dass Sie einen anderen Ordner (außerhalb Ihres ursprünglichen Git-Repos) als Arbeitsbaum desselben Git-Repos deklarieren können.

Sobald das Update “die Dateien in der Produktion” geändert hat, ein einfaches git add -A; git commit kann diese Änderungen erkennen und sie (in einem dedizierten Zweig) festschreiben.

  • Dies spricht über die Git-Seite der Dinge, aber es hilft nicht wirklich viel mit der WordPress-Seite. Ein Teil des Problems besteht darin, herauszufinden, wie man den Commit als Teil der automatischen WordPress-Updates am besten durchführt (ohne manuell nach einem Update einzusteigen und auszuführen git add und git commit).

    – Ago

    27. April 2016 um 15:48 Uhr


  • @Agop Ich verstehe, aber die Git-Seite musste angesprochen werden.

    – VonC

    27. April 2016 um 15:50 Uhr

Zunächst einmal haben Sie keine Versionskontrolle für den gesamten WP-Ordner, sondern nur für die Themen- und Plug-in-Ordner, die von dem Update nicht betroffen sind. So

  • Warum wird diese Antwort abgelehnt? Das ist richtig! WP-Dateien und -Ordner sind Teil des Bereitstellungsprozesses, nicht der Quelle! Wenn Ihr Design auf die Installation bestimmter Plugins angewiesen ist, müssen diese Plugins entweder in den Designordner aufgenommen werden, oder es muss eine Logik vorhanden sein, die den Benutzer auffordert, diese Plugins zu installieren.

    – Mario

    4. Mai 2016 um 15:14 Uhr

1136730cookie-checkWie integriere ich automatische WordPress-Updates mit Git als Versionskontrolle?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy