Hej Leute,

heute möchte ich Euch eine Einführung in Versionskontrollsysteme (VCS) geben und insbesondere die Software git vorstellen. Und los geht’s …

 

Was sind überhaupt Versionskontrollsysteme?

Grundsätzlich geht es darum, Änderungen an Dateien und Verzeichnissen zu protokollieren, damit man diese nachverfolgen kann. Klingt ziemlich simpel, oder? Das ist natürlich vor allem beim Coding sinnvoll. Stellt Euch vor, Ihr wollt ein Skript weiterentwickeln, aber natürlich auf die bereits laufende Version zurückgreifen können. Oder Ihr arbeitet im Team an den gleichen Dateien und wollt dann die geänderten Dateien wieder zusammenführen.

 

Hier ein 5-minütiges englisches Video von der Git-Website, was Versionskontrolle ist.

 

So funktioniert git

Wie macht git das nun? Indem es Snapshots der Dateien für jede Version anlegt. Schaut Euch das Bild an. In Version 1 haben wir drei Dateien A, B und C. Nun ändern wir A und C, B bleibt gleich. Indem wir nun die Dateien als Version 2 einchecken, können wir jederzeit zwischen Version 1 und 2 hin- und herspringen. Weiter unten erkläre ich Euch, wie das in der Praxis geht.

Snapshots – aus dem Buch ProGit von Scott Chacon und Ben Straub

 

Falls Euch die Abkürzung CVS unterkommt

CVS steht für Concurrent Versions System und ist der Klassiker der Versionsverwaltung von Dateien, wird aber inzwischen nicht mehr weiterentwickelt und somit quasi durch Git oder Apache Subversion abgelöst.

 

Das 1×1 der Begriffe

Hinter dem Begriff Repository versteckt sich das Projektarchiv, also der zentrale Ordner/Ablageort der Dateien eines Projekts.

Zentraler Begriff ist Commit (übergeben). Damit sagt man Git, dass die Änderungen, die man an einer Datei gemacht hat, jetzt in die Datenbank geschrieben werden sollen.

Branching (Verästelung) ist ein supernützliches Feature und bedeutet, dass man mehrere Zweige eines Codes verfolgen und hin- und herspringen kann. Was heißt das in der Praxis? Stellt Euch folgendes Szenario vor: Ihr habt eine veröffentlichte Version eines Skripts (Master-Branch). Jetzt erstellen wir einen weiteren Zweig, in dem wir ein neues Feature testen wollen. Das können wir nun machen ohne in der Hauptversion herumzupfuschen und die Lauffähigkeit zu stören. Wir können sogar einen Bug im Master-Branch beheben und erst später den Feature-Branch wieder mit dem Master zusammenführen (sogenanntes Merging)

 

Kostenloses Ebook zu git

Wer tiefer in die Materie einsteigen will, kann das mittels des Ebooks Pro Git von Scott Chacon und Ben Straub tun (pdf, epub, mobi). Eine deutsche Version von Pro Git ist in Arbeit, allerdings sind bisher nur Teile von Kapitel 1 übersetzt.

 

Ich denke aber, als Data Scientist muss man gar nicht so tief einsteigen, eigentlich braucht man nur zu wissen, wie man git benutzt. … sorry, cliffhanger: Und das erfahrt ihr in einem meiner nächsten Posts.