Bevor wir darauf eingehen, worum es sich bei Git handelt, ist es wesentlich, die Grundkonzepte der Versionskontrolle, des Branchings und des Mergings zu erläutern. Diese Konzepte bilden das Fundament, auf dem Git aufbaut. Sie sind essentielle Bestandteile der Softwareentwicklung und spielen eine entscheidende Rolle in der Arbeit mit Git:
- Versionskontrolle
Versionskontrolle ist ein System, das Änderungen an einer Datei oder einer Reihe von Dateien im Laufe der Zeit aufzeichnet, so dass man später auf bestimmte Versionen zurückgreifen kann. Im Idealfall kann also jede Datei auf dem Computer unter Versionskontrolle gestellt werden. Damit kann man Dateien auf einen früheren Stand zurücksetzen, das ganze Projekt auf einen früheren Stand zurücksetzen, Änderungen im Laufe der Zeit überprüfen, sehen, wer zuletzt etwas geändert hat was ein Problem verursachen könnte, wer wann ein Problem eingeführt hat und vieles mehr. - Branching
Branching wird für die Versionskontrolle verwendet, um die Stabilität zu erhalten, während isolierte Änderungen am Code vorgenommen werden. Branching erleichtert die Entwicklung von Fehlerkorrekturen, das Hinzufügen neuer Funktionen und die Integration neuer Versionen, nachdem diese isoliert getestet wurden. - Merging
In der Versionskontrolle ist Merging (auch Integration genannt) eine grundlegende Operation, um mehrere Änderungen an einer Sammlung von Dateien zusammenzuführen. Meistens ist dies notwendig, wenn eine Datei in zwei unabhängigen Branches geändert und zusammengeführt wird. Das Ergebnis ist eine einzige Dateisammlung, die beide Änderungen enthält.
Was ist Git?
Git ist das am weitesten verbreitete VCS (Version Control System). Git verfolgt Änderungen an Dateien, so dass man einen Überblick darüber hat, was gemacht wurde, und bei Bedarf zu bestimmten Versionen zurückkehren kann. Git erleichtert auch die Zusammenarbeit, da Änderungen, die von mehreren Personen vorgenommen wurden, in einer Quelle zusammengeführt werden können.
Git ist eine Software, die lokal ausgeführt wird. Die Dateien und deren Historie werden auf dem jeweiligen Computer gespeichert. Es können auch Online-Hosts (z. B. GitHub) verwendet werden, um eine Kopie der Dateien sowie der Änderungshistorie zu speichern. Wenn es einen zentralen Ort gibt, an dem Änderungen hochgeladen sowie die Änderungen anderer heruntergeladen werden, können so leichter mehrere Entwickler zusammenarbeiten. Git kann Änderungen automatisch zusammenführen, sodass sogar zwei Personen an verschiedenen Teilen derselben Datei arbeiten und diese Änderungen später zusammenführen können, ohne dass die Arbeit des anderen verloren geht!
Beispiel:
Dein Kollege und du arbeiten gemeinsam an einem Projekt. An den gleichen Projektdateien. Git übernimmt nun die Änderungen, die ihr unabhängig voneinander vorgenommen habt, und führt sie in einem einzigen „Master“-Repository zusammen. Mit Git könnt ihr also sicherstellen, dass beide an der neuesten Version des Repositorys arbeiten. So wird eine hohe Anzahl an duplizierten Dateien vermieden.
Was macht Git so speziell:
- Branching und Merging ist mit Git sehr einfach.
- Git ermöglicht es Teams, unabhängig von ihrer Größe, mit maximaler Effizienz zusammenzuarbeiten.
Wie es vor Git war?
- Die Entwickler haben ihre Codes an den zentralen Server übermittelt, ohne ihren eigenen Code kopiert zu haben.
- Alle Änderungen, die am Quellcode vorgenommen wurden, waren den anderen Entwicklern nicht bekannt.
- Es gab keine Kommunikation zwischen den Entwicklern.
Mit Git?
- Jeder Entwickler hat eine vollständige Kopie des Codes auf seinem lokalen System.
- Alle Änderungen am Quellcode können von anderen nachvollzogen werden.
- Regelmäßige Kommunikation zwischen den Entwicklern
Fazit
Heutzutage ist modernes Software-Engineering ohne Git undenkbar. Git wird verwendet, um Änderungen am Quellcode zu verfolgen, ermöglicht die Zusammenarbeit mehrerer Entwickler und unterstützt die nicht lineare Entwicklung durch Tausende paralleler Branches. Es ist ziemlich einfach zu lernen und kann jeden davor bewahren, dass der mühsam erstellte Code verloren geht.