Versionskontrolle
Versionskontrolle ist ein System, das jede Änderung am Programmcode mit Zeitpunkt, Urheber und Begründung festhält und die Rückkehr zu jedem früheren Stand erlaubt – die Grundlage für Teamarbeit und für jeden automatisierten Bereitstellungs-Prozess.
Versionskontrolle ist der gemeinsame Ausgangspunkt der Bereitstellungs-Kette – auf ihr setzen Build-Prozess, automatisierte Pipelines und das Deployment auf.
In einfachen Worten
Software entsteht in unzähligen kleinen Änderungen, oft von mehreren Personen parallel. Ohne ein System, das diese Änderungen ordnet, wäre nicht nachvollziehbar, wer wann was geändert hat – und ein Fehler ließe sich kaum zurücknehmen. Ein Versionskontroll-System löst das: Jede Änderung wird als nachvollziehbarer Schritt festgehalten, mit Zeitpunkt, verantwortlicher Person und einer kurzen Begründung. Der gesamte Verlauf bleibt erhalten, sodass jeder frühere Stand exakt wiederhergestellt werden kann. Mehrere Personen arbeiten in getrennten Zweigen parallel an verschiedenen Aufgaben und führen ihre Ergebnisse anschließend kontrolliert zusammen. Der verbreitete Standard für diese Aufgabe ist Git, ein verteiltes System, bei dem jede Mitarbeiterin und jeder Mitarbeiter eine vollständige Kopie des gesamten Verlaufs besitzt.
Wozu brauche ich das?
Versionskontrolle ist die Voraussetzung dafür, dass mehrere Menschen verlässlich an derselben Website arbeiten, ohne sich gegenseitig zu überschreiben. Zugleich ist sie die Quelle, aus der jeder automatisierte Ablauf schöpft: Ein automatisierter Prozess reagiert auf eine neue, geprüfte Änderung, erzeugt das fertige Paket und stellt es bereit. Ohne festgehaltenen, eindeutigen Stand gibt es nichts, worauf eine solche Automatisierung sicher aufsetzen könnte.
Beispiel aus der Praxis
Zwei Personen arbeiten zeitgleich an derselben Website – eine an einer neuen Unterseite, eine an einer Korrektur im Kontaktformular. Beide arbeiten in getrennten Zweigen und stören sich nicht. Nach Fertigstellung werden die Änderungen geprüft und in den Hauptzweig zusammengeführt; dieser Hauptzweig ist die Grundlage für das nächste Deployment. Stellt sich später heraus, dass die Korrektur einen Folgefehler ausgelöst hat, genügt der Blick in den Verlauf: Die betreffende Änderung ist mit Zeitpunkt, Urheber und Begründung dokumentiert und lässt sich gezielt zurücknehmen, ohne die übrige Arbeit zu verlieren.
Wirtschaftlicher Nutzen
Versionskontrolle schützt das wichtigste digitale Gut – den Quellcode der Website – vor Verlust und unkontrollierten Änderungen. Sie macht Arbeit nachvollziehbar und damit unabhängig von einzelnen Personen: Auch ein später hinzukommendes Team versteht, warum etwas wie umgesetzt wurde. Für Betreiber bedeutet das geringeres Risiko bei Personal- und Agenturwechsel, weil der vollständige Verlauf übergeben werden kann. Und sie ist die nicht verhandelbare Grundlage jeder Automatisierung in der Bereitstellung – vom Build bis zur Veröffentlichung.
Typische Fehler
- Quellcode nur lokal auf einem einzigen Rechner – fällt das Gerät aus, ist die gesamte Arbeit verloren.
- Riesige Sammel-Änderungen mit nichtssagender Begründung – der Verlauf wird unlesbar und ein gezieltes Zurücknehmen unmöglich.
- Zugangsdaten, Passwörter oder Schlüssel im Code abgelegt und mit eingecheckt – sie bleiben dauerhaft im Verlauf, auch nach späterem Löschen.
- Alle arbeiten direkt im Hauptzweig statt in getrennten Zweigen – Änderungen kollidieren und blockieren sich gegenseitig.
- Kein Vier-Augen-Prinzip vor dem Zusammenführen – Fehler gelangen ungeprüft in den Stand, der veröffentlicht wird.
Worauf achten?
- Den Quellcode immer auf einem zentralen, gesicherten Stand spiegeln, nicht nur lokal vorhalten.
- Änderungen in kleinen, nachvollziehbaren Schritten mit aussagekräftiger Begründung festhalten.
- Zugangsdaten und Schlüssel grundsätzlich aus dem Code heraushalten und getrennt verwalten.
- In getrennten Zweigen arbeiten und vor dem Zusammenführen in den Hauptzweig ein zweites Augenpaar prüfen lassen.
- Den Hauptzweig stets in einem veröffentlichungsfähigen Zustand halten – aus ihm entstehen jeder Build und jeder Test in der Staging-Umgebung.
Häufig gestellte Fragen
Was ist Versionskontrolle?
Ein System, das jede Änderung am Programmcode mit Zeitpunkt, Urheber und Begründung festhält und die Rückkehr zu jedem früheren Stand erlaubt. Es ist die Grundlage für die Zusammenarbeit mehrerer Personen und für jeden automatisierten Bereitstellungs-Prozess.
Was ist Git?
Git ist der verbreitete Standard für Versionskontrolle. Es arbeitet verteilt: Jede beteiligte Person hält eine vollständige Kopie des gesamten Änderungs-Verlaufs vor und kann auch ohne Verbindung zu einem zentralen Server arbeiten. Die Stände werden später zusammengeführt.
Warum gehören Passwörter nicht in die Versionskontrolle?
Weil der Verlauf dauerhaft erhalten bleibt: Einmal eingecheckte Zugangsdaten oder Schlüssel sind auch nach späterem Löschen noch in der Historie auffindbar. Solche Geheimnisse werden getrennt vom Code verwaltet.
Was ist ein Branch?
Ein Zweig (Branch) ist eine abgetrennte Arbeitslinie, in der eine Änderung unabhängig vom Hauptstand entwickelt werden kann. Nach Fertigstellung und Prüfung wird der Zweig wieder in den Hauptzweig zusammengeführt. So arbeiten mehrere Personen parallel, ohne sich zu blockieren.