Versionskontrolle mit Git

Das Allheilmittel bei der Software Entwicklung heißt – Versionskontrolle mit Git! Das gibt dem Entwickler volle Kontrolle über die gesamte Historie des Quellcodes. Bei der Entwicklung von Software verläuft die Implementierung nicht immer nach Plan. Beim Schreiben der Programme treten Fehler auf, die Logik wird geändert, Teile vom Quellcode umgeschrieben oder sogar vollständig ausgetauscht. Was passiert, wenn man auf einen älteren Stand der Software zurückgreifen möchte? Ein Ansatz sind Sicherheitskopien. Das ist aber unübersichtlich. Speziell, wenn mehrere Dateien geändert wurden. Außerdem kann man nicht einzelne Änderungen nicht so einfach rückgängig machen.

Versionskontrolle als Rettungsanker

Die Versionskontrolle erstellt ein Protokoll über jede Änderung in einer Datei. Wenn eine Zeile verändert, neu hinzugefügt oder entfernt wird, wird das nicht nur dokumentiert. Zusätzlich bietet Git die Möglichkeit, die Änderungen wieder rückgängig zu machen. Das ist von unschätzbarem Wert. Bei der täglichen Arbeit ist dies auch als einzelner Entwickler enorm wertvoll. Sie können problemlos Experimente machen. Ist eine Idee nicht vielversprechend, wird alles auf Anfang gestellt.

Markieren einzelner Versionen

Darüber hinaus können nicht nur einzelne Änderungen protokolliert werden. Wurde zum Beispiel eine Software erstellt und dann die Version 1.0 an Kunden herausgegeben, kann man den exakten Zustand der Software zu diesem Zeitpunkt »markieren«. Man kann dann jederzeit wieder auf genau diesen Zustand zurückspringen, zum Beispiel um einen Fehler zu beheben. Anschließend stellt man mit nur einem Befehl die aktuelle Version wieder her.

Dieses Feature klingt fast unspektakulär. Immerhin verteilt nicht jeder Software, zum Beispiel auf CDs? Weit gefehlt! Jeder, der Software entwickelt, und sei es nur für sich selbst, verteilt Software. Lediglich der Rahmen ist begrenzt. Eine Webanwendung oder Webseite, wird auch auf einem Server eingesetzt. Selbst dort kann man mit Versionen arbeiten. Gleiches gilt für eine App, die in den Appstore eingereicht wird. Auch Tools, die nur intern verwendet werden, profitieren von Versionen. Es gibt eigentlich keinen Bereich, in dem dieses nicht zutrifft.

Weitere Einsatzzwecke

Es gibt noch eine ganze Reihe weiterer Einsatzzwecke, die nicht alle aufgezählt werden können. Der Vollständigkeit halber darf jedoch nicht verschwiegen werden, dass sich große Vorteile ergeben, wenn im Team gearbeitet wird.

Stell Dir folgendes Szenario vor:

Es gibt eine Datei, nennen wir Sie main.php. Die Entwickler laden die aktuelle Version zur Anpassung im Abstand von 5 Minuten beide als Kopie von einem Server herunter. Nun entwickeln sie jeder ein Feature. Der erste Programmierer ist nach einer Stunde fertig und lädt seine Änderung wieder hoch. Die Anpassungen sind online verfügbar.

Jetzt kommt der zweite Entwickler und lädt seine Version der Datei main.php ebenfalls hoch. Dabei überschreibt er die Kopie vom anderen Entwickler. Somit sind die Anpassungen vom ersten Entwickler wieder weg. Diesen Konflikt kann man nur lösen, in dem alle Änderungen manuell zusammengeführt werden. Das ist nicht nur anstrengend, sondern auch nervig.

Hier kommt nun Versionskontrolle ins Spiel. Mit Git ist diese Aufgabe ein leichtes. Soweit es geht, übernimmt Git die Arbeit vollständig. Wurden jedoch die gleichen Zeilen geändert, kann Git nicht entscheiden, welche Änderung vorrang hat. Dort muss man ein Entwickler eingreifen. Dennoch ist das eine enorme Erleichterung.

Fazit

Auf Git kann und sollte man nicht verzichten. Es macht keinen Sinn. Je eher man sich damit beschäftigt, desto besser. Nicht nur das es wirklich praktisch ist. Man ist in der Lage auch nach 5 oder 10 Jahren seine ersten Gehversuche in der Welt der Software Entwicklung nachzuvollziehen. So hast du Zugriff auf einen wortvollen Schatz mit Erinnerungen. Das meine ich ernst. Das einzige Feature, dass Git noch nicht bietet, ist zukünftige Versionen der Software wiederherzustellen. Die Arbeit muss also immer noch »von Hand« erledigt werden ;-).

Schreib einen Kommentar

Your email address will not be published.