Mobile-Menu

Versionsmanagement von Dateien Was ist Git?

Von Dipl.-Ing. (FH) Stefan Luber 3 min Lesedauer

Anbieter zum Thema

Git ist eine freie Software zur Versionskontrolle und -verwaltung von Dateien. Mithilfe des verteilten Versionskontrollsystems können Entwickler über lokale Arbeitskopien gemeinsam am Quellcode eines Softwareprojekts arbeiten. Änderungen des Codes lassen sich einfach nachverfolgen, bei Bedarf rückgängig machen und anderen zur Verfügung stellen. Die Plattform GitHub baut auf Git auf.

Mithilfe von Git können mehrere Entwickler gemeinsam am Quellcode eines Softwareprojekts arbeiten.(Bild:  Midjourney / KI-generiert)
Mithilfe von Git können mehrere Entwickler gemeinsam am Quellcode eines Softwareprojekts arbeiten.
(Bild: Midjourney / KI-generiert)

Die freie Software Git ist 2005 auf Betreiben von Linus Torvald, dem Initiator und der treibenden Kraft bei der Entwicklung des Linux-Kernels, entstanden. Es handelt sich um eine Open-Source-Software zur verteilten Versionsverwaltung und Versionskontrolle von Dateien. Ursprünglich war sie für die Versionskontrolle bei der Entwicklung des Linux-Kernels gedacht. Heute kommt sie weltweit für Softwareprojekte aller Art zum Einsatz und hat sich in der Softwareentwicklung als De-facto-Standard für die verteilte Versionskontrolle etabliert.

Mithilfe von Git können mehrere Entwickler gemeinsam am Quellcode eines Softwareprojekts arbeiten. Sämtliche Änderungen am Code bleiben nachverfolgbar und können bei Bedarf rückgängig gemacht werden. Der Code lässt sich anderen Entwicklern zur Verfügung stellen, oder Änderungen des Programmcodes können von anderen Entwicklern eingeholt werden.

Git gilt als integraler Bestandteil der agilen Softwareentwicklung und wird auch im Rahmen der DevOps-Methodik intensiv genutzt. Fast alle Entwicklungsumgebungen auf den gängigen Betriebssystemen verfügen über Git-Unterstützung und entsprechende Git-Werkzeuge.

Zahlreiche öffentliche Softwareentwicklungsplattformen wie die sehr bekannte und für viele Open-Source-Projekte genutzte GitHub-Plattform bauen auf Git auf. GitHub dient als öffentlich zugängliche, webbasierte Hosting-Plattform für Software-Repositorys und ist sehr beliebt für das Teilen von Open-Source-Software.

Prinzipielle Funktionsweise von Git

Git ist ein verteiltes Versionsverwaltungssystem und kommt ohne zentralen Server aus. Die Entwickler arbeiten mit einer lokalen Arbeitskopie (Repository), die den vollständigen Verlauf aller Änderungen enthält. Der jeweilige Projektzustand wird als Snapshot gespeichert. Die Entwicklung neuer Features lässt sich über sogenannte Branches in separate Arbeitszweige abspalten. Über Merging können die Änderungen der verschiedenen Branches wieder zusammengeführt werden.

Der Commit-Befehl speichert den aktuellen Stand eines Projekts in Git und erzeugt eine Momentaufnahme aller Dateien zu diesem Zeitpunkt. Der komplette Verlauf der Änderungen ist über Commits abgebildet. Vorbereitet werden die Änderungen für den nächsten Commit in der Staging Area (Zwischenablage). Die verschiedenen Commits lassen sich miteinander vergleichen, und es kann jederzeit zu einem beliebigen früheren Commit zurückgekehrt werden. Die Identifikation der Commits erfolgt über einen eindeutigen kryptografischen Hash des Inhalts eines Commits. Das Hashing schützt den Änderungsverlauf gegen versehentliche oder vorsätzliche Änderungen und stellt die Nachverfolgbarkeit des Verlaufs sicher.

Über den Befehl „Push“ können lokale Änderungen an ein entferntes Repository gesendet werden. Die Befehle „Fetch“ oder „Pull“ laden Änderungen aus einem Remote-Repository. Während „Fetch“ nur die Änderungen herunterlädt, ohne sie in den lokalen Arbeitsbereich zu integrieren, lädt „Pull“ die Änderungen herunter und führt sie direkt im lokalen Branch zusammen.

Vorteile durch Git

Das verteilte Versionskontrollsystem bietet unter anderem diese Vorteile:

  • erleichtert die Zusammenarbeit mehrerer Entwickler an einem Softwareprojekt,
  • ermöglicht es, offline am Programmcode zu arbeiten und ihn mit anderen Entwicklern zu synchronisieren,
  • die Entwicklung von Features lässt sich in separate Branches aufteilen und einfach wieder zusammenführen,
  • alle Änderungen bleiben nachverfolgbar,
  • der Verlust oder das Überschreiben bereits getätigter Programmierarbeit wird verhindert,
  • es kann jederzeit zu einer früheren Version zurückgekehrt werden,
  • gilt als performant, sicher und flexibel und eignet sich für die Entwicklungsarbeit an einer umfangreichen Codebasis,
  • gilt als De-facto-Standard in der Softwareentwicklung,
  • in fast allen Entwicklungsumgebungen der unterschiedlichsten Betriebssysteme integriert.

(ID:50708135)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung