Definition „Git SCM“ Was ist Git?

Autor / Redakteur: chrissikraus / Stephan Augsten |

Git ist ein weit verbreitetes Open-Source-Tool zur verteilten Versionskontrolle von Software. Es wird sowohl in Unternehmen als auch von privaten Entwicklern weltweit genutzt und funktioniert zusammen mit verschiedensten Plattformen und IDEs.

Anbieter zum Thema

Git bietet unter anderem die Möglichkeit, ein Projekt in unterschiedliche Zweige oder Branches bzw. Forks aufzuteilen.
Git bietet unter anderem die Möglichkeit, ein Projekt in unterschiedliche Zweige oder Branches bzw. Forks aufzuteilen.
(© dekzer007 - stock.adobe.com)

Git ist ein kostenloses, verteiltes Versionskontrollsystem für Softwareprojekte, das in seiner ersten Version 2005 veröffentlicht wurde. Das Programm ermöglicht es mehreren Entwicklern, unabhängig von ihrem Aufenthaltsort gleichzeitig an einem Projekt zu arbeiten.

Die Versionskontrolle macht es einfach, Änderungen eigenständig und von überall aus dem Projekt hinzuzufügen, diese Änderungen zu protokollieren und nachzuvollziehen sowie zu einem späteren Zeitpunkt auf ältere Stände des Projekts zuzugreifen. Git ist plattformunabhängig und lässt sich somit in nahezu jeder Umgebung nutzen.

Dezentrale Verwaltung mit Git-Repository

Wo andere Systeme zur Versionskontrolle auf eine zentral gespeicherte Datenbank setzen, vertraut Git auf ein verteiltes System. Das bedeutet, dass jedes Mitglied eines Projektteams eine Art eigene Kopie der Projektdatenbank besitzt – das Repository. Theoretisch ist es mit Git möglich, ganz ohne eine zentrale Datenbank zu arbeiten.

Entwickler programmieren überwiegend an ihrer lokalen Kopie des Repositorys und haben die Möglichkeit, Ihre Änderungen mit allen Beteiligten auszutauschen. Außerdem verringert sich durch das Verteilen des Repositorys die Gefahr, dass Daten verloren gehen: Da viele Personen zugleich die vollständige Historie und den aktuellen Stand des Projekts als lokale Kopie besitzen, kann durch einen Serverausfall praktisch kein Schaden entstehen.

Dennoch gibt es die Option, eine zentrale Anlaufstelle einzurichten („Blessed Repository“), die von autorisierten Teammitgliedern gepflegt wird und dem Team z. B. als offizielle Referenz dient. Jeder, der am Projekt arbeiten möchte, holt sich eine Kopie dieser Version. Änderungen werden anschließend nicht allgemein verteilt, sondern an das zuständige Teammitglied zur Prüfung und Integration weitergeben.

Aufteilen und Zusammenführen unterschiedlicher Entwicklungsstände

Git bietet auch die Möglichkeit, ein Projekt in unterschiedliche Zweige oder Branches bzw. Forks aufzuteilen, um z. B. Versionen zu trennen und neue oder experimentelle Features parallel zum Hauptzweig zu entwickeln. Änderungen, die für den Endnutzer veröffentlicht werden sollen, können anschließend wieder mit der entsprechenden Projektversion zusammengeführt werden.

Git ist darauf ausgelegt, dass Teams regelmäßig Branches und Merges nutzen, um eine gut nachvollziehbare Historie des Projekts aufzubauen. Git verfügt über interne Tools, welche die Branches und Merges eines Projekts visualisieren können – so erhält jedes Teammitglied einen nachvollziehbaren Überblick über die Entwicklung des Projekts.

GitHub: Web-Interface für Git-Projekte

Git an sich ist nur ein System, um die Versionierung von Software zu steuern. Es gibt auf dem Mark verschiedenste Tools, die Git als Basis nutzen und eine Reihe von Komfortfunktionen hinzufügen, um die Verwaltung von Projekten bequemer und zugänglicher zu machen. Ein Beispiel hierfür ist die webbasierte Plattform GitHub.

Die Webanwendung macht die Inhalte von Git-Repositories transparent und online verfügbar. So wird es einfach, Änderungen und Branches mit Teammitgliedern und Nutzern auf der ganzen Welt zu teilen. Die Plattform bereitet den Entwicklungsfortschritt eines Projekts zudem grafisch und in Statistiken auf, bietet die einfache Nachverfolgung von Abhängigkeiten und gibt dem Team die Möglichkeit, ein eigenes Wiki für die Community einzurichten.

(ID:46052454)