Im heutigen Beitrag wirst du lernen, was Git eigentlich ist und welche immensen Vorteile es bei der Softwareentwicklung zu bieten hat.
Inhaltsverzeichnis
1. Was ist Git?
Git ist eine Software für die Versionsverwaltung deiner Projekte. Sie wurde von Linus Torvalds, dem Entwickler des Linux Kernels entwickelt. Einer der größten Vorteile von Git ist, dass es völlig kostenlos ist.
Möglicherweise kannst du an dieser Stelle mit dem Begriff „Versionsverwaltung“ noch nicht so viel anfangen. Keine Sorge – in den kommenden Absätzen werde ich dir das Ganze noch umfangreicher und verständlicher erklären.
Git vereinfacht das gesamte Management eines Programmierprojektes enorm. Sowohl Solo-Developer als auch Entwicklerteams können sich die folgenden Vorteile von Git zunutze machen:
2. Vorteil #1: Versionen
Mit Git hat man Versionen seiner Projekte. Git ist, wie bereits erwähnt, eine Versionsverwaltung. Das bedeutet, du kannst dir Git wie eine Zeitmaschine vorstellen. Sollte seit dem letzten hinzugefügten Update oder Feature etwas kaputt gegangen sein, kann man mit Git nämlich jederzeit zu einem früheren Stand eines Projekts zurückspringen und diesen wiederherstellen.
Wenn sich in unser Projekt also Fehler einschleichen, können wir diese wieder rückgängig machen.
Und das ist unheimlich wertvoll! Stell dir beispielsweise einmal das folgende Szenario vor:
Wir arbeiten an einem Grafikeditor wie Photoshop oder paint.NET und uns kommt die Idee für ein großartiges neues Feature in den Sinn, mit welchem man Effekte zu Bildern hinzufügen kann. Diese Idee setzen wir auch direkt in die Praxis um und veranlassen ein Update für unser Programm.
Komischerweise bekommen wir seit dieses neue Feature veröffentlicht ist plötzlich ständig E-Mails von Kunden, die Programmabstürze und andere Probleme beklagen.
Wir stellen also fest, dass unsere Software durch das letzte Effekte-Feature nicht mehr richtig funktioniert – irgendetwas ist schiefgelaufen.
Mithilfe von Git ist es jetzt möglich, einfach zu dem Punkt zurückzuspringen, an dem wir das Feature noch nicht implementiert hatten. Wir müssen also nicht unter Druck nach einer Lösung für das Problem aufgrund des neuen Features suchen, sondern können mit ein paar einfachen Befehlen wieder zu unserer vorherigen Version zurückkehren. So können wir das Ganze wieder sauber und strukturiert aufs Neue entwickeln und dafür sorgen, dass es diesmal fehlerfrei funktioniert.
Wir können durch Git also für jedes neue Feature, das wir implementiert haben, eine neue Version für unser Projekt erstellen. Das setzen wir mithilfe von sogenannten Commits um.
3. Was ist ein Commit?
Ein Commit ist eine Version unseres Projekts. Die Commits sind im Grunde einfach die Änderungen, die wir an unserem Projekt durchgeführt haben. Auf der folgenden Abbildung siehst du einen Zeitstrahl. Bei dem orangefarbenen Punkt handelt es sich um den ersten Commit. Hier haben wir unser Projekt erstellt:
Nun können wir im Verlauf dieses Zeitstrahls weitere Commits (Änderungen) zu unserem Projekt hinzufügen. Ein neuer Commit könnte beispielsweise sein, dass wir eine Benutzeroberfläche gestaltet haben:
Ein weiterer Commit könnte so aussehen: Wir haben ein Zeichnen-Feature zu unserer Software hinzugefügt. Man kann jetzt also in unserem Grafikeditor auch mit einem Pinsel malen.
Anschließend fügen wir zwei weitere Commits hinzu: eine Speicher- und eine Ladefunktion.
Und zu guter Letzt fügen wir noch das Effekte-Feature für unsere Grafiksoftware hinzu:
Genau an dieser Stelle mussten wir feststellen, dass im Programm etwas kaputt gegangen ist. Denn seit wir diesen Commit hinzugefügt haben, erhalten wir zahlreiche E-Mails, die uns darauf hinweisen, dass das Programm nicht mehr so funktioniert, wie es sollte.
Mithilfe von Git können wir jetzt also ganz einfach zu dem Punkt zurückkehren, an dem es zuletzt noch funktioniert hat und von dort aus weiterentwickeln.
An diesem Punkt behalten wir also noch alle Fortschritte der vorherigen Commits, das letzte Effekt-Feature ist nun aber nicht mehr enthalten.
Versionen sind allerdings nicht der einzige Vorteil, den Git zu bieten hat.
4. Vorteil #2: Branches
Mit Git können wir auch sogenannte Branches, also Entwicklungszweige erstellen. Jedes Projekt in Git besitzt einen Hauptentwicklungszweig, den „Main-Branch“.
Neben dem Hauptentwicklungszweig kann man weitere Zweige (Branches) parallel entwickeln. Doch was ist damit gemeint?
Stellen wir uns einmal unseren Hauptbranch, also den Hauptentwicklungszweig unseres Projektes vor. Auf der folgenden Abbildung erkennen wir noch die verschiedenen Commits, die wir darauf setzen. Der Hauptentwicklungszweig ist die Version unseres Projekts, die wir später an den Kunden ausliefern.
Jetzt haben wir eine Idee für ein neues Feature. Wirklich sicher sind wir uns allerdings noch nicht, ob dieses tatsächlich in unser Projekt passt. Genau deshalb möchten wir das Feature erst einmal unabhängig von diesem Hauptzweig entwickeln.
Wir können also einfach einen neuen parallelen Branch erstellen, der den Hauptentwicklungszweig nicht beeinflusst. Auf diesem Branch können wir unser neues Feature entwickeln.
Wenn wir das Feature dann irgendwann fertig entwickelt haben und es in unser Projekt passt, können wir den Nebenentwicklungszweig, auf dem wir nur das Feature entwickelt haben, mit unserem Hauptentwicklungszweig „mergen“. Sie also zusammenfließen lassen.
Dass wir auf diese Weise neue Features experimentell entwickeln können, ohne unser Hauptprojekt zu beeinflussen, ist ein weiterer großer Vorteil von Git.
5. Vorteil #3: Einfaches Zusammenarbeiten
Bei Projekten mit mehreren Entwicklern kann es bekanntermaßen hin und wieder zu Dateikonflikten kommen, wenn zwei Entwickler beispielsweise eine Codedatei bearbeiten. Oder sie möchten ihre Commits erstellen und die Änderungen stehen unbeabsichtigt in Konflikt miteinander.
Git erkennt solche Konflikte und hilft den Entwicklern dabei, diese relativ einfach zu lösen. Das ist gerade für die Teamarbeit ein weiterer enormer Vorteil.
Bei den drei Vorteilen, die du in diesem Beitrag kennengelernt hast, handelt es sich um die Hauptvorteile von Git. Damit stellt es ein unglaublich wertvolles Werkzeug dar. Es ist kostenlos und einfach in der Handhabung, sobald man es einmal gelernt hat. Und genau das wirst du auch in den weiteren Beiträgen zu diesem Thema.
Ich kann wärmstens empfehlen, Git für die eigenen Projekte zu nutzen.
6. Was ist GitHub?
Jetzt steht aber noch eine andere Frage im Raum: Wenn Git die Versionsverwaltung ist, was ist dann eigentlich GitHub?
Diesen Namen liest man auch nicht selten im Internet. Viele, die diesen Beitrag lesen, wissen sicherlich auch bereits, dass GitHub eine Website ist.
GitHub ist eine Online-Plattform, die auf github.com zu erreichen ist. Auf github.com kann man sich einen Account erstellen und darauf eigene Git-Projekte hosten oder sich ganz einfach an deren Open Source Projekten beteiligen. GitHub ist die größte Plattform für Programmierprojekte der Welt und diese nutzt eben Git.
Du weißt jetzt also, dass Git selbst die Software ist, die die Versionsverwaltung darstellt und dass es sich bei GitHub um eine Plattform handelt, auf der Entwickler Git-Projekte hosten können.
Auf GitHub werde ich noch in einem zukünftigen Beitrag eingehen.