Eine Version Control (Versionskontrolle) protokolliert Dateiänderungen, sodass Nutzer später auf eine beliebige vorherige Version zurückgreifen können. In der Praxis wird die Version Control mit Git von Einzelpersonen und Teams vor allem im Bereich der Softwareentwicklung genutzt, allerdings lässt sich damit im Prinzip auch fast jede andere Dateiart nachverfolgen. In diesem Beitrag erfahren Sie mehr über die grundlegenden Eigenschaften und Funktionen der Versionskontrolle mit Git.

Was ist Git und was ist Version Control?

Git ist ein verteiltes Versionsverwaltungssystem (Distributed Version Control System). Es wird seit seiner Veröffentlichung im Jahr 2005 kontinuierlich weiterentwickelt.

Von lokaler zu zentraler und verteilter Versionsverwaltung

Vor der Einführung von Git gab es bereits lokale Versionsverwaltungssysteme, die Dateiänderungen in einer Datenbank verwalteten. Eine Zusammenarbeit mit anderen Entwicklern war so nicht möglich. Gegenüber lokaler Versionsverwaltung bieten zentralisierte Versionsverwaltungssysteme viele Vorteile und waren viele Jahre der Standard, bei einem Serverausfall kann jedoch niemand mehr am Projekt arbeiten. Die verteilte Versionsverwaltung stellt eine Weiterentwicklung dar, die Probleme lokaler und zentraler Version Control behebt.

Vorteile einer vollständigen lokalen Kopie

Mit Git rufen Benutzer nicht nur den aktuellen Projektstand vom Server ab, sondern erhalten auch eine vollständige Kopie (Klon) des Repositorys und damit des Projektverlaufs. Ein Repository speichert alle Dateien inklusive der Revisionshistorie. Sollten die Festplatten des Servers und die Backups beschädigt sein, hat dann jeder Benutzer immer noch eine Kopie des Repositorys und der Server kann wiederhergestellt werden. Da fast alle Funktionen lokal arbeiten, lässt sich zum Beispiel die Projekthistorie rasend schnell durchsuchen, weil dafür keine Daten von einem externen Server abgerufen werden müssen. Zudem können Benutzer auch bei einem Serverausfall oder wenn sie unterwegs sind und keine Internetverbindung haben, weiterarbeiten.

Git überzeugt mit einfachem Design, Geschwindigkeit, guter Unterstützung von nicht-linearer Entwicklung mit vielen parallelen Entwicklungs-Branches und ermöglicht so die effektive Verwaltung großer Projekte.

Kurz gesagt: Wenn jemand von Versionskontrolle mit Git spricht, ist damit das System an sich gemeint – unabhängig davon, ob die Repositorys auf GitHub, GitLab oder anderswo gehostet werden.

Große Auswahl an günstigen Domain-Endungen – schon ab 0,08 € /Monat
Jetzt Domain-Check starten

Git installieren

Zuerst muss Git auf dem lokalen Rechner installiert werden.

Nach der Installation folgt mit dem Befehl git config die Einrichtung vom Namen und der E-Mail-Adresse des Benutzers.

Version Control mit einem Stapel von Schnappschüssen

Git betrachtet Daten als eine Reihe von Schnappschüssen. Wenn ein Anwender seinen Projektstand als eine Version in Git speichert (committet), erstellt Git ein Abbild aller Dateien und speichert in dem Schnappschuss einen Verweis. Unveränderte Dateien kopiert Git nicht und legt nur eine Verknüpfung zur vorherigen Dateiversion an. In Git entsprechen die Daten einem Stapel von Schnappschüssen. Zur Sicherstellung der Datenintegrität berechnet Git Prüfsummen aller zu speichernden Daten und speichert diese als Referenz, sodass unbemerkte Datei- und Verzeichnisänderungen unmöglich sind.

Die vier Projektbereiche und drei Zustände einer Datei

Ein Git-Projekt besteht aus vier Hauptbereichen, in denen Dateien existieren:

  • Working Directory: Das Verzeichnis enthält den Checkout einer Version des Projekts, damit Anwender die enthaltenen Dateien verwenden und ändern und neue hinzufügen können.
  • Staging Area: Eine Datei im Git-Verzeichnis speichert, welche Änderungen in den nächsten Commit einfließen sollen. Dies ist ein temporärer Aufbewahrungsort.
  • Local Repository: Das lokale Git-Verzeichnis speichert die Metadaten und die Objektdatenbank. Es speichert committete Änderungen lokal.
  • Remote Repository: Ein Server wie GitHub speichert das Repository und ermöglicht so anderen Entwicklern den Zugriff und das Erstellen von Backups.

Eine Datei kann sich in einem von drei Hauptzuständen befinden:

  • Modified: Eine Datei wurde geändert, aber noch nicht in die lokale Datenbank eingecheckt.
  • Staged: Eine geänderte Datei wurde der Staging-Area hinzugefügt und ist für den nächsten Commit vorgemerkt.
  • Committet: Eine Datei ist in der lokalen Datenbank gespeichert.

So funktioniert Version Control in Git

Git kann anfangs verwirrend sein, aber mit dem Verständnis der Schlüsselkonzepte ist die Version Control mit Git leicht nachvollziehbar. Die Bedienung erfolgt mit den folgenden Befehlen per Kommandozeile.

Ein Repository mit Version Control für ein Verzeichnis einrichten

Um ein vorhandenes Verzeichnis neu zur Versionskontrolle mit Git hinzuzufügen, müssen Anwender in der Kommandozeile in das Projektverzeichnis wechseln und dort folgenden Befehl ausführen:

git init

Der Befehl fügt dem Verzeichnis das Unterverzeichnis .git hinzu, das die relevanten Git-Repository-Daten enthält. Zum Starten der Version Control für existierende Dateien mit einem initialen Commit sind folgende Befehle nötig:

git add *.*
git commit -m 'Initiale Projektversion'

Mit git log –graph können sich Anwender die Git-Historie anzeigen lassen.

Bei einem bestehenden Projekt

  1. git clone: Einen Klon vom Remote Repository mit der gesamten Historie abrufen und diesen im lokalen Repository speichern.
  2. git checkout: Dateien für die Bearbeitung im Working Directory freigeben.
  3. git add: Geänderte Dateien als Snapshot der Staging Area hinzufügen, wenn diese für einen Commit bereit sind.
  4. git commit: Der Snapshot der Staging Area wird im lokalen Repository gespeichert.
  5. git push: Senden der Commits zum Remote Repository.
  6. git pull: Um die Änderungen durch ein Teammitglied abzurufen und im eigenen Working Directory zu speichern. Der Befehl kombiniert git fetch zum Abrufen der letzten Änderungen und git merge, um die Änderungen ins Projekt zu integrieren.
  7. git revert: Macht den letzten Commit rückgängig.
  8. git reset: Macht Änderungen an Dateien im Working Directory rückgängig.

Alternativ zur Bedienung per Kommandozeile können Anwender Tools wie GitHub Desktop oder Sourcetree nutzen, die Repositorys und Codeänderungen anschaulich darstellen und Einsteigern sowie erfahrenen Anwendern gleichermaßen bei der Arbeit helfen.

Wichtig: Mit der Datei .gitignore lassen sich Dateien von der Versionsverwaltung ausschließen, wie zum Beispiel Dateien mit API-Schlüsseln.

Branches

Git ermöglicht die Entwicklung in sogenannten Branches. Das sind Abzweigungen von dem Hauptstamm, die zum Beispiel für die Entwicklung von Features und die isolierte Entwicklung verwendet werden, ohne den Code im Hauptstamm zu beeinflussen. Der Wechsel zwischen Branches erfolgt mit git switch und das Zusammenführen erfolgt mit git merge. Mit Pull Requests können Entwickler andere Nutzer über Änderungen informieren, die sie an einem Branch vorgenommen haben. Diese eignen sich, um die eigene Arbeit mit anderen Teammitgliedern zu besprechen und von diesen prüfen zu lassen. Meist informieren Entwickler andere damit über die Fertigstellung eines Features.

Version Control mit Git – Fazit

Millionen Entwickler arbeiten täglich mit Git und der Version Control. Sie können die Versionsverwaltung alleine und im Team nutzen. Mit der Version Control ist die Projekthistorie jederzeit verfügbar, Teams können dank der dezentralen Struktur unabhängig voneinander arbeiten und das auch, wenn die Verbindung zum zentralen Server unterbrochen ist. Branches ermöglichen die parallele Entwicklung zusätzlicher Funktionen, ohne sich gegenseitig bei der Arbeit zu stören, und bei Fehlern lässt sich leicht der letzte Stand wiederherstellen. Die Version Control mit Git ist dank der Flexibilität, Zuverlässigkeit und Geschwindigkeit seit vielen Jahren ein Standard-Werkzeug der Softwareentwicklung.

Titelmotiv: Photo by Kier in Sight Archives on Unsplash

Host Europe

Große Auswahl an günstigen Domain-Endungen – schon ab 0,08 € /Monat
Jetzt Domain-Check starten