Logo der Firma Zelantic, auf dem ein Polarfuchs zu sehen ist

Git Einführung

card image

Git Einführung

Das ist der erste Post am #TechFriday. Das erste Thema ist die Benutzung von Git - hierzu wird es jede Woche Freitag einen neuen Beitrag geben.

Es ist uns allen schon einmal passiert: man wollte doch nur ein neues Feature einbauen und nichts funktioniert mehr, oder plötzlich ist die Festplatte defekt und stundenlange Arbeit plötzlich verloren. Und wie erhalte ich die neuesten Bugfixes von meinen Teamkollegen, ohne nerviges rum kopieren?

Eine Lösung für all diese Probleme sind Versionskontrollsysteme. Die erste Version eines solchen Systems ist die lokale Versionskontrolle. Alle Änderungen an den Dateien werden dabei in einer lokalen Datenbank als Patch gespeichert, wodurch der Zustand zu jedem beliebigen Zeitpunkt wiederhergestellt werden kann. Dies erreicht man, indem alle Patches bis zu dem gewählten Zeitpunkt zusammengefasst und ausgeführt werden.

Wenn man in einem Team zusammenarbeitet, benötigt man eine Version, auf die mehrere Leute Zugriff haben. Aus diesem Gedanken sind die zentralisierten Versionskontrollsysteme entstanden. Das heißt, dass es eine zentrale Version gibt, an der mehrere Leute gleichzeitig arbeiten können. Der Vorteil hier ist, dass jeder im Team Einblick in die Fortschritte der anderen Teammitglieder hat. Außerdem ermöglicht es den Administratoren eine bessere Kontrolle Schreib- und Leserechte.

Das Problem bei den beschriebenen Ansätzen ist, dass ein fehlerhafter Speicher einen Verlust der Daten bedingt. Außerdem führt ein Ausfall des zentralisierten Systems dazu, dass nicht mehr kollaboriert werden kann und Änderungen nicht gespeichert werden können.

Zur Lösung dieser Probleme wurde ein weiterer Ansatz entwickelt, die verteilten Versionskontrollsysteme. Bei der verteilten Versionskontrolle besitzt jeder Entwickler nicht nur die letzte Version des Projekts, sondern auch den gesamten Verlauf. Dadurch kann der Zustand jederzeit wiederhergestellt werden, da bei jedem Entwickler ein vollständiges Backup vorliegt.

Ein System, welches diesen Ansatz umsetzt ist Git, das weltweit am weitesten verbreitete Versionskontrollsystem. Im Gegensatz zu anderen Systemen werden bei Git nicht nur die Dateien und die Änderungen gespeichert, sondern es ist auch in der Lage, Systemzustände zu speichern. Diese Zustände werden mit einer eindeutigen SHA-1-kodierten ID versehen, wodurch jeder Zustand direkt wieder hergestellt werden kann.

Bei der lokalen Arbeit mit Git gibt es 3 Stufen:

  • Modified: Änderungen an Dateien, die noch nicht im System gespeichert wurden.
  • Staged: Staged bedeutet, dass eine geänderte Datei markiert wurde in den nächsten commit aufgenommen zu werden.
  • Committed: Der Zustand wurde in der lokalen Datenbank eingespeichert.

Nächste Woche wird die Einrichtung von Git erklärt und die grundlegenden Befehle für die lokale und die Teamarbeit gezeigt.

Zusammenfassung:

Git ist ein weit verbreitetes Versionskontrollsystem. Es nutzt den Ansatz des verteilten Versionskontrollsystem, d.h. dass jeder Entwickler ein Backup des Projektes und aller Änderungen besitzt. Wenn ein Entwickler eine Änderung festhalten will, wird der Zustand gespeichert und mit einer eindeutigen Identifikationsnummer versehen. Beim Einspeichern werden 3 Stufen (modified, staged und commited) durchlaufen.