Git

Git/GitHub/GitLab? Hier geben wir euch einen ersten Einstieg in die Versionsverwaltung in der Programmierung.

September 29, 2022

Headerbild vom Artikel

Wer sich bereits mit dem Programmieren und der Informatik auseinandergesetzt hat, ist vermutlich auf die Begriffe „Git“ und „GitHub“ gestoßen. Was für Programmier:innen ein fester Bestandteil des Alltags ist, scheint auf den ersten Blick sehr kompliziert, lässt sich aber dennoch anschaulich erklären. In diesem Artikel erklären wir dir kurz und verständlich die Versionskontrolle in der Softwareentwicklung und Git als Struktur, um diese möglichst einfach abzubilden.

Versionskontrolle in der Softwareentwicklung

Durch die Pandemie waren wir in den letzten Jahren so stark wie noch nie auf kollaboratives Arbeiten an Dokumenten, Präsentationen oder anderen Dateien in der Cloud angewiesen. Auch Entwickler:innen arbeiten häufig kollaborativ, um die Aufgaben ideal im Team aufzuteilen und dadurch möglichst effektiv zu Lösungen zu implemenieren. Durch gewisse Strukturen, in denen einzelne Codeelemente abgelegt und gespeichert werden, ist die Versionskontrolle in der Programmierung jedoch besonders stark von den typischen Herausforderungen, wie Versionskonflikte und Nachvollziehbarkeit von Änderungen betroffen. Hinzu kommen häufige marginale Änderungen im Code, die schwierig nachzuverfolgen sind, und die Tatsache, dass mehrere Entwickler:innen meist zeitgleich unterschiedliche Änderungen vornehmen müssen und man dabei den Überblick nicht verlieren darf. Um genau mit diesen Schwierigkeiten umzugehen, wurde Git im Jahre 2005 veröffentlicht und ist seither das meist genutzte Open Source Versionskontrollsystem.

Git Logo

Was ist Git?

Im Kern ist Git eine Struktur, die die Versionskontrolle in der Programmierung ermöglicht. Ein Hauptbestandteil sind sogenannte Branches, welche die Versionsverläufe anhand ihrer Zeit ordnen und zueinander in Beziehung setzen. Man kann sich das Konzept beispielsweise als Zeitstrahl vorstellen, bei dem bestimmte Zeitpunkte speziell markiert werden. Besonders wichtig ist dabei der Haupt- oder Masterbranch, aus dem alle übrigen Branches (und somit Versionen) abgehen. Auf diesem Hauptbranch befindet sich immer die aktuell veröffentlichte Version. Wenn man nun weiter arbeiten und neue Funktionen in sein aktuelles Programm einbauen möchte, dann tut man dies in der Regel nicht in der gleichen Version, die aktuell für alle Nutzer:innen zur Verfügung gestellt wird, sondern in einer Arbeitskopie. Wenn man den aktuellen Stand für sich selber kopiert, dann entsteht ein neuer Branch (Zweig), in dem man nun lokal für sich die Erweiterungen im Code einpflegen und testen kann. In unserem Zeitstrahl-Beispiel würde das nun bedeuten, dass man an einem bestimmten Zeitpunkt von der aktuellen Zeitlinie abgeht und dort Veränderungen vornimmt. Sobald die neuen Funktionalitäten eingebaut oder alle Bugs behoben sind, geht es in das Einpflegen der Veränderungen im Code zurück in den Hauptbranch. Dieser Prozess wird mergen genannt. Mit diesem Prozess wird es Entwickler:innen ermöglicht, in unterschiedlichen Kopien des Codes zu arbeiten und im Anschluss die Änderungen möglichst fehlerfrei und effizient in die gemeinsame Codeversion für alle zu übertragen.

Was sind typische Git-Befehle?

Git beschreibt nicht nur die Struktur, in der die Codeversionen gespeichert werden, sondern auch auch einige Programmier-Befehle, durch welche man die Struktur verändern kann. Im Folgenden findet sich eine Auswahl der wichtigsten Git Befehle:

  • Git Pull: Lädt aktuelle Branch Version vom Server in die lokale Umgebung
  • Git Commit: Lokale Änderungen werden gespeichert
  • Git Rollback: Macht einen oder mehrere Commits rückgängig
  • Git Merge: Zusammenführen zweier Branches zu einem
  • Git Push: Änderungen werden in die globale Version geschrieben

GitHub Logo und GitLab Logo

Was ist GitHub?

GitHub und auch GitLab sind Anwendungen, die die Git-Struktur in der Softwareentwicklung besonders nutzbar machen. Dabei bieten sie neben ihrer Grundstruktur, die auf Git basiert, eine Vielzahl an zusätzlichen Funktionalitäten. Diese unterstützen und entlasten Developer:innen sowie Projektmanager:innen in ihren alltäglichen Aufgaben. So gibt es häufig Features wie eine umfassende Userverwaltung, visuelle Unterstützung zur Planung und Zuweisung von Aufgaben und transparente Organisation der Aufgaben zwischen unterschiedlichen Mitgliedern im Team.

Besonders relevant ist dabei die Möglichkeit, durch eine parallele Darstellung von zwei Programmcode Versionen Unstimmigkeiten im Code zu identifizieren und besonders effizient Versions- oder Merge Konflikte zu beheben. Gleichzeitig wird einem eine Übersicht zur Verfügung gestellt, um die verschiedenen Speicherstände von dem Code nachzuverfolgen, sowie mehrere Änderungen für ein finales Deployment zusammenzufassen und zu strukturieren.

Nun hast du einen ersten Überblick über Git. Wir haben schon mal mit Astrum IT zu dem Thema gesprochen. Den Artikel findest du hier. Weitere Informationen zu Tech-Begriffen findest du in unserem Lexikon und auf unserem Blog.

Verpasse keinen Artikel mehr.