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.
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.