Git

Git

Copyright © Shutterstock/Postmodern Studio

Was ist Git?

Definition

Git ist der Name einer verteilten Versionsverwaltungssoftware für Softwareentwicklungsprojekte. Es handelt sich um freien Code, der nach dem Open-Source-Konzept entstanden ist und weiterentwickelt wird.

Die Software zählt zu den am weitesten verbreiteten Tools für die dezentrale Administration von Dateien und Programmcode. Sie wird branchenweit eingesetzt, von Entwicklerplattformen wie dem webbasierten Dienst GitGub oder dem Filehoster SourceForge bis zu globalen IT-Konzernen wie Microsoft oder Google.

Aufgaben einer Versionskontrollsoftware

An der Entwicklung komplexer Software arbeiten häufig zahlreiche Programmierer und Softwareentwickler gleichzeitig. Um die einzelnen Arbeitsschritte und -ergebnisse miteinander zu harmonisieren, werden Programme zur Versionsverwaltung eingesetzt. Sie ermöglichen das Zwischenspeichern verschiedener Stände und das Zurückgehen zu in der Zwischenzeit überarbeiteten Versionen. Dazu werden nicht nur die tatsächlichen Veränderungen am Programmcode abgespeichert, sondern zusätzlich Parameter wie Datum, Uhrzeit, Benutzer oder Änderungskommentare festgehalten. Versionsverwaltungssysteme werden auch von Grafikern oder Autoren genutzt.

Entstehung von Git

Die ursprüngliche Idee zu Git stammt vom finnisch-amerikanischen Informatiker Linus Torvalds, der maßgeblichen Anteil an der Entwicklung des freien Betriebssystems Linux hatte. Im April 2005 veröffentlichte er die erste Version von Git. Seine Zielsetzung war, ein Versionskontrolltool für die Softwareentwicklung zu schaffen, das verteilte, nicht-lineare Arbeitsprozesse abbilden kann, einen Schutz vor unberechtigten Zugriffen bietet, versehentliche oder bewusste Manipulationen verhindert und sehr effizient eingesetzt werden kann.

Unterschiede zu anderen Versionsverwaltungsprogrammen

Git unterscheidet sich in mehreren zentralen Punkten von anderen Versionskontrollsystemen. Das Programm unterstützt nicht-lineare Arbeitsabläufe in der Softwareentwicklung, indem Funktionen vorgesehen sind, verschiedene Entwicklungszweige aufzuspalten (branching) und auch wieder zusammenzuführen (merging). Grundlage der Programmabläufe ist eine Peer-to-Peer-Architektur. Dadurch benötigt man im Unterschied zu klassischen Client-Server-Strukturen keinen zentraler Server. Eine Kopie des kompletten Archivs (repository) einschließlich der Versionshistorie (history) ist lokal bei jedem Nutzer offline gespeichert. Die Nutzer sind daher nicht für alle Arbeitsschritte auf eine Netzwerkanbindung angewiesen. Ihre Zugriffsgeschwindigkeit auf die Daten erhöht sich und mehrere Programmierer können zeitgleich an dem Projekt arbeiten.

Zusätzlich verringert die verteilte Datenspeicherung das Risiko eines Datenverlusts. Für einen effizienten Datenaustausch sind in Git verschiedene Möglichkeiten integriert, u. a. mehrere Protokolle und Patches. Je nach Art der Datenübertragung kann auf die jeweils geeignetste Technik zurückgegriffen werden. Die Speicherung des gesamten Versionsverlaufs eines Softwareentwicklungsprojekts wird über kryptografische Verfahren abgesichert. Dazu werden alle Einzelversionen über einen Hash-Wert miteinander verkettet. Ergebnis einer Manipulation an einer beliebigen Stelle der Versionshistorie wäre eine ungültige Prüfsumme.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte