Dieter Petereit 22. August 2018

WordPress: Versionskontrolle mit Git ganz easy

WordPress und Git zu verbinden, ist generell erstmal keine schlechte Idee. Nur, wie stellst du es an, ohne zum Git-Experten zu werden? Das zeige ich dir im folgenden Beitrag.

Der Standard: WordPress ungesichert

Das beliebteste CMS der Dr. Web-LeserInnen ist schnell installiert und unkompliziert im Betrieb. Updates des Funktionskerns sind grundsätzlich automatisiert, es sei denn, du wolltest das nicht. Nur gravierende Neuerungen musst du manuell autorisieren. Themes und Plugins werden ebenfalls automatisch, mindestens semi-automatisch aktualisiert.

Der Haken an der Sache ist, dass das alles im Live-Betrieb passiert. Sicher, WordPress geht während Updates und Installationen automatisch in den Wartungsmodus. Der Besucher bleibt also für den Zeitraum der Aktualisierung außen vor. Wenn bei diesen Vorgängen etwas schief geht, ist deine WordPress-Website im schlimmsten Falle nicht erreichbar. Das kann dich teuer zu stehen kommen, wenn du damit etwa dein Geld verdienst.

Im Git und auf hoher See, sind wir alle in Gottes Hand. (Foto: Pixabay)

Besser wäre es also, Updates und Installationen jeder Art erstmal testen zu können, um sie im Problemfalle selektiv wieder rückgängig machen zu können. In der Software-Entwicklung gibt es dafür seit langer Zeit die sogenannten Versionskontrollsysteme. Solche Systeme verzeichnen jede Änderung an bestehendem Code als neuen Zustand und speichern ihn separat ab. Man kann also zu jedem Zeitpunkt zu jedem beliebigen früheren Entwicklungsstand zurück. Am einfachsten stellst du dir diese Vorgehensweise als simples Backup and Restore vor, wobei Versionskontrollsysteme deutlich mehr leisten als diesen vergleichsweise simplen Vorgang.

Auch in WordPress gibt es seit Jahren ein Versionskontrollsystem. Dieses bezieht sich jedoch ausschließlich auf deine Beiträge und Seiten. Hier legt WordPress, während du einen Beitrag schreibst, in definierbaren Abständen eine definierbare Anzahl an Sicherungskopien, sogenannte Revisionen, an. Tritt ein Problem auf, kannst du eine ältere Version des Beitrags aufrufen und wiederherstellen. Ebenso ist es möglich, zwei Versionen miteinander zu vergleichen, um letztlich zu entscheiden, welche nun die öffentlich sichtbare Repräsentation sein soll. In allen anderen Bereichen von WordPress fehlt ein solches System.

Einzelkämpfer behelfen sich seit langer Zeit schon damit, lokale Testumgebungen vorzuhalten. Lokal abgelegt ist dann die zur Live-Installation identisch WordPress-Site, allerdings zu Bearbeitungszwecken. Dort schraubst du am Theme und schaust, ob es funktioniert und wie es aussieht. Dort installierst du ein neues Plugin und prüfst, ob es zu den anderen eingesetzten kompatibel ist. Erst, wenn alles zur Zufriedenheit aussieht und funktioniert, lädst du die Änderungen auf die Live-Website hoch.

Aber auch das ist kein Versionskontrollsystem. Denn alle Änderungen, die du lokal vorgenommen hast, fanden ebenfalls am offenen Herzen statt. Du hast eine bestehende Installation geändert – nur befand sie sich eben nicht online und für Gäste zugänglich, sondern offline und nur für dich sichtbar.

WordPress und Git: eine sinnvolle Kombination

Versionskontrollsysteme sind die einzige Möglichkeit, die Risiken aus der Arbeit an Software-Projekten nahezu vollständig zu eliminieren. Würdest du mit einem solchen arbeiten, dann würden die Änderungen, die du an der WordPress-Installation vornimmst, im Detail getrackt und gesichert.

Du hättest zu jedem Zeitpunkt die Möglichkeit, einen älteren Zustand wieder herzustellen und das auch noch selektiv, bezogen auf ein einzelnes Thema. Es würde also nicht ein gesamter Zustand deiner Website zum Zeitpunkt X wieder aktiviert, sondern nur das, was einen bestimmten Arbeitsschritt betrifft. Schau dir einfach die Revisionshistorie für deine Beiträge an. Genauso würde es für alle Aspekte deiner WordPress-Installation funktionieren.

Damit dürfte klar sein, wofür das gut ist. Du erhältst erstmalig die volle Kontrolle über das CMS, und brauchst keine Angst zu haben, etwas kaputt zu konfigurieren oder zu coden. Jede Änderung kannst du jederzeit rückgängig machen. Wenn du dir nun noch vorstellst, es gäbe weitere Personen, die an deiner Website arbeiten, etwa ein ganzes Designteam, so erkennst du, dass es ohne Versionskontrolle gar nicht mehr geht. Hier bei Dr. Web ist Git unser Leibwächter.

In der Tat spielen Versionskontrollsysteme wie Git ihre maximalen Vorteile da aus, wo mehrere Personen an ein- und demselben Projekt arbeiten und das noch gleichzeitig. Das Kontrollsystem kümmert sich vollständig um alle Aspekte der Kollaboration. Es führt sogar zeitgleich getätigte Änderungen an Dateien konfliktfrei zusammen oder weist zumindest deutlich auf bestehende Konflikte und deren Lösungsmöglichkeiten hin.

Das bekannteste und beliebteste Versionskontrollsystem heißt Git und ist besonders wegen der Plattform GitHub, die lediglich eine der vielen Möglichkeiten zum Git-Hosting darstellt, in aller Munde. Ich kenne kaum ein Open-Source-Projekt, das nicht auf Github gehostet wird.

Mit Github arbeiten Softwareteams ortsungebunden und international zusammen. (Illustration: Stockvault)

Der Haken an Git ist reichlich spitz. Schnell stellst du fest, dass es sich nicht eben um eine intuitive Lösung handelt. Die Lernkurve ist anfangs zudem recht flach. Mit anderen Worten: Man muss sich mühen, den Einstieg zu finden.

WordPress und Git können aber auch einfacher zusammenarbeiten

Git ist ein Kommandozeilentool und, wie bei allen dieser Tools, kann von schneller Erlernbarkeit nicht die Rede sein. Wenn du die Vorteile von Git ausschließlich im Zusammenspiel mit WordPress nutzen möchtest, gibt es ein paar Lösungen, die du dir anschauen solltest, bevor du einen 2-Tage-Kurs in Git belegst.

Einen Hochgeschwindigkeitsüberblick kannst du dir immerhin mit Try Git verschaffen. Dieser Kurzkurs verbraucht nur 15 Minuten deiner Zeit. Willst du es ganz genau wissen, kannst du das E-Book Pro Git mit runden 500 Seiten Stärke hier kostenlos lesen. Ja, das ist zäh. Und ja, das dauert. Und es ist nicht vergnügungssteuerpflichtig.

Deshalb stelle ich dir im Folgenden einige Plugins vor, die die Zusammenarbeit der beiden Systeme so stark vereinfachen, dass du während des Tuns das erlernen kannst, was dich interessiert, während aber, unabhängig von deinen Skills, für volle Funktionalität gesorgt ist:

VersionPress: die umfassendste Git-Lösung für WordPress

VersionPress ist ein kostenloses Open-Source-Plugin, das die Versionskontrolle auf der Basis von Git in deine WordPress-Installation integriert. Die Lösung ist sehr weitreichend und bietet echten Git-Profis sogar die Nutzung per Kommandozeile, während sie Nicht-Gitprofis die Verwendung per grafischer Benutzeroberfläche erlaubt.

VersionPress kümmert sich, neben der Versionskontrolle von Ordnern und Dateien und deren Inhalten, sogar um die Versionierung der WordPress-Datenbank. Dazu ist kein anderes mir bekanntes System in der Lage.

VersionPress: Die Liste der Änderungen. (Screenshot: Version Press)

Außerdem bietet VersionPress das sogenannte Staging, also das Klonen kompletter Installationen. Wer nur letztere Funktionalität sucht, sollte diesen Beitrag des Kollegen Andreas Hecht lesen. Darin stellt er das Plugin WP-Staging im Detail vor.

VersionPress trackt alle Änderungen, die du an deiner WordPress-Website vornimmst und bietet dir in einer übersichtlichen Liste den entsprechenden Zugriff darauf. Jede getrackte Änderung ist mit einem Undo-Button versehen. Du klickst also Undo und deine Änderung wird rückgängig gemacht. In der Zwischenzeit getätigte weitere Änderungen, etwa neue Beiträge oder Seiten sind von dem Vorgang nicht betroffen, werden also nicht etwa ebenfalls rückgängig gemacht.

Da VersionPress voll auf Git basiert, kannst du das entsprechende Repository auch mit einem externen Git-Client verwalten, ohne die Vorteile der Lösung zu verlieren. Du wirst an verschiedenen Stellen auf die Info stoßen, dass es sich bei VersionPress um eine Developer Preview handelt, die sich in einer Phase früher Verfügbarkeit befindet. Lass dich davon nicht beeindrucken. Ich habe in meinen Tests keinerlei Probleme gefunden. Alles funktioniert stabil. Dennoch ist Vorsicht geboten, da die Arbeitsweise des Plugins überaus komplex ist und immer unerwünschte Funktionskonflikte, vor allem mit sonstigen Plugins möglich sind.

Generell gilt daher, dass du zusätzlich eine tragfähige Backup-Strategie brauchst. Ich setze in diesen Fällen auf VaultPress. Die Lösung kommt aus dem Hause Automattic und ist preislich kaum des Nachdenkens wert, ein echter No-Brainer.

Bedenke: Du benötigst Git. Du kannst also nicht einfach VersionPress installieren und erwarten, dass alles einfach funktioniert. Es muss allerdings nicht unbedingt dein eigener Git-Server sein. VersionPress unterstützt alle gängigen Workflows, wie Github, Bitbucket und andere.

VersionPress ist kostenfrei und soll es auch bleiben. Die Entwickler bieten allerdings unter VersionPress.com eine SaaS-Lösung an, auf der dein WordPress komplett gehostet werden kann. Die Plattform befindet sich noch im Aufbau. Als Entwickler mit 10 Sites im Portfolio könntest du bereits für 49 USD im Monat buchen, kleinere und größere Angebote sind noch nicht verfügbar.

WP Pusher: Git für Themes und Plugins

Willst du nur Themes und Plugins verwalten, dann reicht eine kleinere Lösung. Es bietet sich WP Pusher an. WP Pusher arbeitet mit GitHub und Bitbucket zusammen. Das Plugin ist in der Lage, Änderungen direkt von diesen Plattformen auf deinen Webserver zu bringen und dort in Effekt zu setzen. Das kann sogar vollautomatisch erfolgen. Du benötigst keinen eigenen Git-Server neben GitHub oder Bitbucket. Damit kannst du WP Pusher auf jedem Webspace einsetzen.

WP Pusher: Installiere Plugins und Themes direkt von Github und anderen. (Screenshot: WP Pusher)

WP Pusher ist allerdings im Produktiveinsatz nicht kostenlos. Es gibt zwar eine kostenlose Variante, mit dieser kannst du jedoch nur öffentliche Repositories anbinden. Das wird sich wohl kaum mit deinen Intentionen in Deckung bringen lassen.

Für die Arbeit mit privaten Repositories musst du in die Tasche greifen. Für 99 USD im Jahr bindest du fünf Websites an, für 199 USD im Jahr schon 20 und für 499 USD jährlich sogar 100 Sites. Damit liegst du pro Site, je nach Tarif, zwischen fünf und 20 USD pro Jahr. Das sollte kein Hinderungsgrund sein.

Gitium: Alternative für das Deployment von Plugins und Themes

Gitium von Presslabs kümmert sich um die gleiche Problemstellung wie WP Pusher. Gitium kommt mit einem Vor-, sowie einem Nachteil. Der Vorteil gegenüber WP Pusher ist, dass Gitium unter GPL-Lizenz kostenlos ist, während WP Pusher eine kostenpflichtige Lösung bietet.

Gitium ist weniger intuitiv zu bedienen. Vorkenntnisse sind nützlich. (Screenshot: Gitium)

Der Nachteil besteht darin, dass Gitium einen eigenen Git-Server voraussetzt, während WP Pusher lediglich Github oder Bitbucket benötigt.

Revisr.io: Komplettes Versionsmanagement

Revisr wandelt auf den Pfaden von VersionPress und ist, ebenso wie jenes, kostenlos nutzbar. Es beschränkt sich nicht nur auf Plugins und Themes, sondern bearbeitet auch die Datenbank. Dabei hast du sehr dezidierte Möglichkeiten, genau einzustellen, ob Revisr die gesamte Datenbank oder nur einzelne Tabellen tracken soll. Natürlich kannst du die Datenbank auch komplett unbearbeitet lassen.

Revisr: Übersichtliches Dashboard im WP-Admin (Screenshot: Revisr)

Revisr kooperiert mit Github und Bitbucket. Aufgrund der umfassenden Eingriffsmöglichkeiten des Plugins gilt ebenfalls der dringende Rat, zusätzlich eine stabile Backup-Lösung einzusetzen und diese vor größeren Änderungen manuell zu starten.

Wermutstropfen: Revisr ist seit zwei Jahren ohne Update, kann sich aber einigermaßen stabiler Review-Noten erfreuen. Ich habe mich für VersionPress entschieden. Zwei Jahre ohne Update in so einem sensiblen Bereich erscheint mir zu lang.

Dieter Petereit

Dieter Petereit

ist seit 1994 im Netz unterwegs, aber bereits seit über 30 Jahren in der IT daheim. Seit Anfang des neuen Jahrtausends schreibt er für diverse Medien, hauptsächlich zu den Themenfeldern Technik und Design. Man findet ihn auch auf Twitter und Google+.
Dr. Webs exklusiver Newsletter
Hinweise zum Datenschutz, also dem Einsatz von Double-Opt-In, der Protokollierung der Anmeldung, der Erfolgsmessung, dem Einsatz von MailChimp als Versanddienstleister und deinen Widerrufsrechten findest du in unseren Datenschutzhinweisen.

Ein Kommentar

  1. Danke für die gute Aufstellung. Das Problem habe ich gerade akut. Leider muss ich mit dieser ekeligen Frage kommen: Sind die Sachen DSGVO-konform? Ich könnte mir Vorstellen, dass das Teilen der Datenbank eines WP basierenden Shop-Systems einen ADV benögtigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kennst du schon unseren Newsletter?

Hinweise zum Datenschutz, also dem Einsatz von Double-Opt-In, der Protokollierung der Anmeldung, der Erfolgsmessung, dem Einsatz von MailChimp als Versanddienstleister und deinen Widerrufsrechten findest du in unseren Datenschutzhinweisen.

Cookies

Weitere Informationen zu den Auswahlmöglichkeiten findest du hier. Dazu musst du zunächst keine Auswahl treffen!

Um Dr. Web zu besuchen, musst du eine Auswahl treffen.

Deine Auswahl wurde gespeichert!

Informationen zu den Auswahlmöglichkeiten

Was du erlaubst!

Um fortfahren zu können, musst du eine Auswahl treffen. Nachfolgend erhältst du eine Erläuterung der verschiedenen Optionen und ihrer Bedeutung.

  • Ich stimme zu:
    Du erlaubst uns das Setzen aller Cookies, die wir in unseren Datenschutzhinweisen genannt haben. Dazu gehören Tracking- und Statistik-Cookies. Aus dem Tracking per Google Analytics bieten wir auf der Seite Datenschutz ein Opt-Out, also die Möglichkeit der Abmeldung, an.
  • Ich stimme nicht zu:
    Wir verzichten bei dieser Option auf den Einsatz von Google Analytics. Die für den Betrieb von Dr. Web notwendigen Cookies werden aber dennoch gesetzt. Einzelheiten entnimmst du bitte den Datenschutzhinweisen

Du kannst deine Cookie-Einstellungen jederzeit hier ändern: Datenschutz. Impressum

Zurück