Git für TYPO3-Projekte: Warum Versionskontrolle auch für kleine Sites unverzichtbar ist
Artikel vorlesen lassen
Freitagnachmittag, kaputtes Template, Kunde ruft in 10 Minuten an. Genau für solche Momente wurde Git erfunden – auch für kleine TYPO3-Projekte.
Freitagnachmittag, 16:30 Uhr. Du änderst ein TypoScript-Template für einen Kunden – nur eine kleine Anpassung. Du speicherst, lädst die Seite neu und… alles ist kaputt. Die Navigation funktioniert nicht mehr, Inhalte werden nicht angezeigt. Du versuchst panisch, die Änderung rückgängig zu machen, aber was genau hast du nochmal geändert? Die alte Version? Keine Ahnung wo. Der Kunde ruft in 10 Minuten an.
Genau für solche Momente wurde Git erfunden. Aber viele TYPO3-Integratoren denken: "Git ist Overkill für meine kleinen Projekte." Spoiler: Das stimmt nicht.
In diesem Artikel zeige ich dir, warum Git gerade für TYPO3-Projekte – egal welcher Größe – dein Leben einfacher macht. Mit konkreten TYPO3-Beispielen, nicht mit abstrakter Theorie.
Warum TYPO3 ohne Git zum Albtraum werden kann
Lass uns konkret werden. Hier sind drei Szenarien, die du vielleicht kennst:
Extension-Update schlägt fehl
Du updatest eine Extension über Composer. composer require vendor/extension:^2.0 läuft durch, du commitest die Änderungen. Beim nächsten Aufruf der Website: Fatal Error. Die Extension ist inkompatibel mit einer anderen installierten Extension.
Ohne Git: Panik. Welche Version war vorher installiert? War es 1.8.2 oder 1.9.1? Composer-Verlauf durchsuchen, händisch downgraden, hoffen dass es funktioniert. Längere Downtime.
Mit Git: git revert HEAD und in 30 Sekunden läuft die alte Version wieder. Du atmest durch, analysierst in Ruhe das Kompatibilitätsproblem und findest eine saubere Lösung.
Wichtig: Git versioniert nur Dateien, nicht die Datenbank. Wenn eine Extension Datenbank-Änderungen macht, brauchst du zusätzlich ein DB-Backup. Aber selbst dann ist Git unverzichtbar, weil die meisten Probleme durch Code-Änderungen entstehen, nicht durch die Datenbank.
TypoScript-Änderungen summieren sich
Über Monate machst du kleine Anpassungen im Template. Die Hauptseiten funktionieren einwandfrei. Dann meldet sich der Kunde: Auf einer Unterseite, die niemand explizit geprüft hat, werden die Bilder nicht mehr richtig angezeigt. Welche TypoScript-Änderung war schuld? Keine Ahnung.
Ohne Git: Datei-Vergleich mit uralten Backups, wenn du überhaupt welche hast. Rätselraten. Zeile für Zeile durchgehen und hoffen, dass dir etwas auffällt.
Mit Git: git log zeigt jede Änderung mit Datum und Begründung. Du siehst genau: Am 15. September hast du das Content-Rendering angepasst. Das war wahrscheinlich der Moment, als das Problem auftrat.
Site-Package entwickeln ohne Sicherheitsnetz
Du entwickelst ein neues Template. Willst verschiedene Ansätze ausprobieren. Hast aber Angst, den funktionierenden Stand zu überschreiben.
Ohne Git: templates_v1, templates_v2, templates_final, templates_wirklich_final, templates_final_JETZT_WIRKLICH. Du kennst das.
Mit Git: Branches für jedes Experiment. Easy switch zwischen Versionen. Kein Chaos, keine Duplikate, kein Durcheinander.
Die 5 konkreten Vorteile für TYPO3-Integratoren
1. Sicheres Experimentieren
Du willst eine neue Extension testen? Erstelle einen Branch, probiere aus. Funktioniert nicht? Lösche den Branch, fertig. Kein Chaos, kein Risiko.
TYPO3-Beispiel:
git checkout -b test/new-news-extension # Neuen Branch erstellen # Extension installieren und testen # Funktioniert nicht wie gewünscht? git checkout main # Zurück zum Hauptbranch git branch -D test/new-news-extension # Test-Branch löschen # Fertig, als wäre nichts gewesen
Die einzelnen Kommandos erkläre ich in einem Videokurs Schritt für Schritt. Für den Anfang reicht: Git gibt dir die Freiheit zu experimentieren, ohne Angst vor kaputten Systemen.
2. Dokumentierte Änderungshistorie
Jede Anpassung wird mit Commit-Message dokumentiert. Du siehst später genau: Warum habe ich das gemacht? Der Kunde fragt: "Was haben Sie letzte Woche geändert?" git log zeigt es.
TYPO3-Beispiel:
git log --oneline # Zeigt alle Änderungen in Kurzform [FEATURE] Kontaktformular-Extension integriert [BUGFIX] Navigation auf Mobile korrigiert [TASK] TYPO3 auf 13.4.19 aktualisiert
Diese Commit-Messages sind nicht nur für dich hilfreich. Sie zeigen dem Kunden auch, dass du strukturiert arbeitest.
Du willst lernen, wie du Git-Kommandos sicher im TYPO3-Alltag einsetzt? In meinem Git-Grundlagen-Videokurs zeige ich dir das Schritt für Schritt mit echten TYPO3-Projekten.
3. Einfaches Rollback
Eine Änderung war ein Fehler? Zurück zur vorherigen Version in Sekunden. Kein Backup-Wirrwarr, keine FTP-Jonglage.
TYPO3-Beispiel:
Du hast das fluid_styled_content Update gemacht und jetzt sind alle Templates kaputt? git revert HEAD (macht den letzten Commit rückgängig) und du bist zurück auf dem funktionierenden Stand, während du in Ruhe das Problem analysierst.
4. Saubere Deployment-Workflows
Lokale Entwicklung mit DDEV. Testen im Staging-Branch. Erst dann auf Live deployen. Mit Git weißt du immer: Was läuft wo?
TYPO3-Beispiel:
# Lokal entwickeln git commit -m "[FEATURE] Neue Inhaltssektion" # Änderung speichern # Auf Staging testen git push staging main # Auf Test-Server hochladen # Wenn alles läuft: Live git push production main # Auf Live-Server hochladen
Wie du solche Deployment-Workflows konkret aufsetzt, würde den Rahmen des Artikels sprengen. Ich plane dazu aber ein Webinar, in dem ich live zeige, wie du so etwas umsetzen kannst.
5. Team-Arbeit ohne Chaos
Mehrere Leute arbeiten am gleichen TYPO3-Projekt? Jeder in seinem Branch. Zusammenführen, ohne dass sich jemand überschreibt.
Selbst wenn du alleine arbeitest: Dein zukünftiges Ich ist auch ein Teammitglied. Und das wird dir für saubere Dokumentation dankbar sein.
"Aber ist das nicht kompliziert?"
Einwand 1: "Das ist Overkill für meine kleine TYPO3-Site mit 20 Seiten"
Antwort: Gerade bei kleinen Projekten brauchst du Git am meisten. Warum? Weil du oft alleine arbeitest, kein Team hast, das Fehler abfängt, und meist kein ausgefeiltes Backup-System.
Git ist dein Sicherheitsnetz.
TYPO3-Realität: Auch eine "kleine" Site hat:
- Ein Site-Package mit Templates
- 5-10 Extensions
- TypoScript-Konfiguration
- Backend-Layouts
Das sind hunderte Dateien. Willst du wirklich ohne Versionskontrolle arbeiten?
Einwand 2: "Ich arbeite direkt auf dem Server / mache regelmäßige FTP-Backups"
Antwort: FTP-Backups sind besser als nichts, aber:
- Wie oft machst du sie? Täglich? Stündlich?
- Wie findest du die richtige Backup-Version?
- Wie siehst du, was sich zwischen zwei Backups geändert hat?
- Was machst du, wenn du nur eine einzelne Datei zurückholen willst?
Git macht das alles automatisch und besser.
TYPO3-Beispiel: Du hast heute Morgen die ext_tables.sql einer Extension angepasst. Mittags hat der Kunde angerufen und eine andere Änderung gewollt. Abends merkst du: Die Datenbank spinnt. Welche Änderung war schuld?
Mit FTP-Backup: Rätselraten. Mit Git: git diff zeigt dir jede einzelne Zeile.
Einwand 3: "Ich habe keine Zeit, Git zu lernen"
Antwort: Git-Basics für den TYPO3-Alltag lernst du in 3-4 Stunden. Diese Investition holst du beim ersten verhinderten Desaster wieder rein.
Zeit-Rechnung:
- 4 Stunden Git lernen = 1 Arbeitstag
- 1 kaputtes TYPO3-Update ohne Backup beheben = 1-2 Arbeitstage plus Kundenvertrauen verloren
Du sparst Zeit, du verschwendest sie nicht.
Erste Schritte mit Git für TYPO3
Schritt 1: Git installieren
- macOS: Über Homebrew oder Xcode Command Line Tools
- Windows: Git für Windows
- Linux: Über Package Manager
Schritt 2: Dein erstes TYPO3-Repository
# In dein TYPO3-Projektverzeichnis wechseln cd /pfad/zu/deinem/typo3-projekt # Git initialisieren git init # .gitignore für TYPO3 erstellen (wichtig!) # Damit werden Uploads, Cache, etc. nicht versioniert
Was gehört ins Repository, was nicht?
Versionieren (JA):
- Site-Packages (packages/dein_sitepackage)
- Eigene Extensions
- composer.json und composer.lock
- ggf. .htaccess und Konfigurationsdateien
NICHT versionieren:
- fileadmin/user_upload (Kundenbilder)
- var/cache
- var/log
- typo3temp
- .env mit Passwörtern
Beispiel-.gitignore für TYPO3 (muss natürlich an jedes Projekt individuell angepasst werden):
.DS_Store
.idea
.vscode
/var/*
!/var/labels
/vendor
/public/*
!/public/.htaccess
!/public/typo3conf
/public/typo3conf/*
!/config/system/settings.php
*.gz
*.cache
Je nach Art des Projekts und Remote-Repositories muss du darauf achten, sensible Daten wie z.B. Datenbank-Zugangsdaten nicht in Remote-Repositories hochzuladen.
Schritt 3: Dein erster Commit
# Alle Dateien zum Staging hinzufügen git add . # Ersten Commit erstellen git commit -m "[TASK] Initial TYPO3 13 Setup"
Schritt 4: Ab jetzt immer committen
Gewöhne dir an:
- Nach jeder Extension-Installation: Commit
- Nach jeder Template-Änderung: Commit
- Nach jedem TYPO3-Update: Commit
Beispiel-Workflow:
# Extension über Composer installiert composer require vendor/extension-name # Änderungen für Git vormerken und speichern git add composer.json composer.lock git commit -m "[FEATURE] Extension XY installiert" # Im Backend konfiguriert git add config/system/settings.php git commit -m "[TASK] Extension XY konfiguriert"
Was git add, commit und die anderen Kommandos genau machen und wie du sie richtig einsetzt, zeige ich dir im Git-Grundlagen-Videokurs Schritt für Schritt.
Git ist kein Nice-to-Have, sondern Must-Have
Zusammengefasst:
- Git verhindert Katastrophen und spart dir schlaflose Nächte
- Git dokumentiert deine Arbeit und macht dich professioneller
- Git kostet ein paar Stunden Lernzeit, spart aber hunderte Stunden Frust
- Git funktioniert auch bei kleinen TYPO3-Projekten
Du willst Git endlich richtig für deine TYPO3-Projekte nutzen? In meinem Git-Grundlagen-Videokurs lernst du in 3 Stunden, wie du Git sicher im TYPO3-Alltag einsetzt – mit Praxis-Demos, Handouts und einem Demo-Repository.
Oder starte mit dem kostenlosen Git-Spickzettel für TYPO3-Integratoren:
Kostenlosen Spickzettel herunterladen →
Zurück
Wer schreibt hier?
Hi, ich bin Wolfgang.
Seit 2006 tauche ich tief in die faszinierende Welt von TYPO3 ein – es ist nicht nur mein Beruf, sondern auch meine Leidenschaft. Mein Weg führte mich durch unzählige Projekte, und ich habe Hunderte von professionellen Videoanleitungen erstellt, die sich auf TYPO3 und seine Erweiterungen konzentrieren. Ich liebe es, komplexe Themen zu entwirren und in leicht verständliche Konzepte zu verwandeln, was sich auch in meinen Schulungen und Seminaren widerspiegelt.
Als aktives Mitglied im TYPO3 Education Committee setze ich mich dafür ein, dass die Prüfungsfragen für den TYPO3 CMS Certified Integrator stets aktuell und herausfordernd bleiben. Seit Januar 2024 bin ich stolz darauf, offizieller TYPO3 Consultant Partner zu sein!
Meine Leidenschaft endet aber nicht am Bildschirm. Wenn ich nicht gerade in die Tiefen von TYPO3 eintauche, findest du mich oft auf meinem Rad, während ich die malerischen Wege am Bodensee erkunde. Diese Ausflüge ins Freie sind mein perfekter Ausgleich – sie halten meinen Geist frisch und liefern mir immer wieder neue Ideen.