Von Zeit zu Zeit gibt es Veränderung. Eine der krassestem, die ich im Softwarebereich vollzogen habe, ist die Nutzung von Werkzeugen zur Versionsverwaltung. Mich hat die Programmierung schon immer fasziniert. Bereits in der Schule habe ich damit angefangen, und die Faszination hält bis zum heutigen Tage an. Zu Beginn meiner Programmierzeit hatte ich das Wort Versionsverwaltung noch nicht einmal gehört.

Erst während des Studiums hatte ich dann erste Erfahrungen mit Versionskontrollsystemen gemacht. Damals entwickelten wir mit einigen Studienkollegen das Semesterprojekt koctopus. Allerdings war ich nur für die Umsetzung der grafischen Oberfläche mitverantwortlich, und nur die Kollegen der Kernelprogrammierung nutzten Versionskontrolle - damals noch CVS.

Schließlich "durfte" ich dann bei meiner ersten Arbeitsstelle mit einem ersten Versionskontrollsystem arbeiten. Dieses war recht unkomfortabel und umständlich zu nutzen und diente somit eigentlich eher zur Abschreckung als zur Einladung ein solches System zu verwenden ...

Doch nach einiger Zeit erkannte ich schließlich den unschätzbaren Nutzen eines solchen Systems. Die Nachvollziehbarkeit aller Änderungen, die jemals an einem Dokument vorgenommen wurden und alle daraus resultierenden Konsequenzen:

Irgendwann stellte ich mir dann die Frage, ob es nicht sinnvoll sei, auch für kleinere Heimprojekte ein solches System zu nutzen. Glücklicherweise hatte ich zur Zeit der Suche nach einem solchen System einen sehr klugen Berater, der meinte, dass für so etwas wohl Git am Sinnvollsten sei.

Bereits nach meinen ersten holprigen Erfahrungen mit Git, war ich davon hellauf begeistert. Ich hatte bis zu diesem Zeitpunkt lediglich mit Server-basierten Systemen gearbeitet, welche umständlich mit Gruppen und Rechten eingeschränkt war.

Git hingegen ist komplett anders: Hier gibt es keinerlei Einschränkung in der Nutzung! Alle Operationen, die man zur täglichen Nutzung benötigt, sind lokal. Somit muss man bei seiner täglichen Arbeit nicht zwingend mit dem Internet oder einem Server verbunden sein. Auch das Erstellen einer Änderung ist hier sinnvoll, statt Änderungen einzelner Dateien zu speichern, können Anpassungen unterschiedlicher Dateien zusammengefasst werden. Auch die Einfachheit und Geschwindigkeit ist so hervorragend, dass man jede noch so kleine Anpassung im System ablegen kann - zusammen mit einem kurzen Kommentar zur Änderung.

Mit diesem kleinen Werkzeug macht es nun wirklich Spaß, seine Änderungen nachzuverfolgen. Auch erweiterte Funktionen sind damit kein Problem:

Ich kann an dieser Stelle nur jedem Entwickler ans Herz legen, ein solches Werkzeug auszuprobieren. Es gibt davon jede Menge in den unterschiedlichsten Ausprägungen. So sollte für jeden Geschmack etwas dabei sein.

Bei Git handelt es sich um ein Distributed Version Control System. Das bedeutet, dass man stets lokal arbeiten kann (was ein gewaltiger Geschwindigkeitvorteil ist), und erst nach getaner Arbeit seine Änderungen mit einem Server (oder auch mehreren) synchronisieren kann.