Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Ratgeber

WordPress und Git: Der leichte Einstieg

    WordPress und Git: Der leichte Einstieg

Mit ordentlicher Versionskontr olle kann WordPress übers Wasser gehen. (Foto: Pixabay)

Du kennst WordPress. Und du kennst Git. Letzteres aber eher vom Hörensagen oder Schwärmereien unter Kollegen? Wir zeigen dir, was das ist und wie du es einfach mit WordPress verwendest.

WordPress: Der Status Quo

Das beliebteste CMS der Welt ist schnell installiert und kann sehr unkompliziert betrieben werden. Updates des Funktionskerns finden, wenn du willst, automatisch statt. Nur gravierende Neuerungen musst du manuell autorisieren. Themes und Plugins können ebenfalls automatisch, mindestens semi-automatisch aktualisiert werden.

Der Haken: Alles passiert am offenen Herzen. Natürlich schickt WordPress sich während Updates und Installationen automatisch in den Wartungsmodus, der Besucher für den Zeitraum der Aktualisierung außen vor hält. Was aber, wenn bei diesen Vorgängen etwas schief geht? Deine WordPress-Website ist dann im schlimmsten Falle nicht erreichbar. Das kann dich teuer zu stehen kommen.

Damit dir WordPress nicht absäuft, integriere es mit Git. (Foto: Pixabay)
Damit dir WordPress nicht absäuft, integriere es mit Git. (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 den Bereich der Beiträge. Wie du weißt, 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, auf denen die identischen Installationen zu Bearbeitungszwecken vorgehalten werden. 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: Wozu soll das gut sein?

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

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.

GitHub: Landing Page. (Screenshot: t3n)
GitHub: Landing Page. (Screenshot: t3n)

Wenn du dich ein wenig mit Git auseinandersetzt, stellst du schnell fest, dass es sich nicht eben um eine intuitive Lösung handelt.

WordPress und Git: einfaches Zusammenspiel

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.

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

VersionPress ist ein kostenloses Open-Source-Plugin, das Versionskontrolle auf 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, die umfassendste Verbindung zwischen WordPress und Git. (Screenshot: t3n)
VersionPress, die umfassendste Verbindung zwischen WordPress und Git. (Screenshot: t3n)

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. 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 auf Dr. Web lesen. Dort 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 Art Vorversion handelt, da es sich in einer Phase früher Verfügbarkeit (Early Access Phase) befindet. Diese Information ist seit März 2016 überholt. Seither wird VersionPress unter Open-Source-Lizenz fortentwickelt. 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 auf deinem Server. Du kannst also nicht einfach VersionPress installieren und erwarten, dass alles einfach funktioniert.

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: Kein Git, nur GitHub erforderlich. (GIF: WP Pusher)
WP Pusher: Kein Git, nur GitHub erforderlich. (GIF: WP Pusher)

WP Pusher ist allerdings nicht kostenlos, sondern kostet ab 39 Dollar pro Jahr.

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, also Open Source ist, während WP Pusher eine kostenpflichtige Lösung bietet.

Gitium: OPen Source, aber nur mit Git auf dem Server verwendbar. (Screenshot: t3n)
Gitium: OPen Source, aber nur mit Git auf dem Server verwendbar. (Screenshot: t3n)

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

In diesem Zusammenhang auch interessant: unser Wordpress-Hosting-Vergleich.

Jan
Jan

Wir arbeiten hier mit dem 'revisr' plugin. kann ich empfehlen.

Antworten
Cedric Kastner

Das geht aber auch eleganter, denn so wie ich das sehe ist das nur die halbe Lösung. Ich arbeite bereits seit geraumer Zeit mit Bedrock und WPackagist und eigenem Deploy-Skripten (Git Hooks).

Bedrock trennt WordPress vom Inhalt (durch Versionierung mit Git) und WPackagist erlaubt die Installation von Themes und Plugins mittels Composer.

Mehr Infos unter:
https://github.com/roots/bedrock
https://wpackagist.org

Antworten
Sven Wegner

Eine wirklich ansehnliche Geschichte, wenn die Wordpress-Datenbank ebenfalls versioniert wird.

Erst dachte ich noch so: "Na und? Wo ist jetzt der Vorteil?" Aber dieser Punkt, macht das Plugin gleich viel schöner :-)

Danke für den Artikel!

Antworten
Albert Augustin

Wir machen das seit Jahren manuell. Alles zu git. Ne Weiche in die wp-config (local, staging, production). Dann von local per git-ftp auf den jeweiligen Server.

Antworten
egal
egal

Danke für den informativen Artikel. Auch wenn ich glaube, dass es dem Autor eigentlich klar ist, wurde der Fehler gemacht, und OpenSource mit kostenlos gleichgesetzt. Nur weil WP Pusher nicht kostenlos ist, heißt es nicht, dass es nicht unter der GPL steht. Denn das ist, soweit ich weiß, bei Wordpress-Plugins per se Pflicht.

Zum Artikel selbst: Ich hatte vor einem Jahr auch mal probiert, WP an Git anzubinden, und praktisch den Master Branch als Live Version zu haben. Letztlich bin ich aber an dem Punkt stagniert, zwar ein Repo mit Git-Flow für das Theme am laufen zu haben, aber vom Master dann doch manuell auf den Server zu laden.

VersionPress werde ich mir denke ich mal nochmal anschauen. Richtig cool wäre es halt, dann im Staging den development-Branch und Live den Master-Branch am laufen zu haben. Ich erinnere mich gerade nicht mehr wirklich daran, woran es gescheitert war, aber vor einem Jahr habe ich dieses Setup mit VersionPress nicht zum laufen bekommen.

Antworten
Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden
Alle Jobs
Zur Startseite
Zur Startseite