Topic outline

  • Was ist Git?

    Git ist ein spezifisches, verteilt arbeitendes Versionskontrollsystem, das von Linus Torvalds für die Entwicklung des Linux-Kernels kreiert wurde.

    Git hat sich zum De-facto-Standard für die Versionskontrolle in der Softwareentwicklung entwickelt.

    • Versionskontrolle ist ein System, das Änderungen an einer Datei oder einer Reihe von Dateien über die Zeit hinweg aufzeichnet, so dass man später spezifische Versionen wieder aufrufen kann. Es ist ein fundamentales Werkzeug in der Softwareentwicklung, da es ermöglicht,  die Geschichte einer Projektentwicklung nachzuvollziehen und Änderungen rückgängig zu machen oder zu verschiedenen Entwicklungsständen zurückzukehren. Vor allem in der gemeinsamen Entwicklung von Projekten, ist Versionskontrolle notwendig.

    • Git Repositories sind die praktische Umsetzung des Konzepts der Versionskontrolle. Sie bieten eine strukturierte Umgebung, in der die Entwicklungsarbeit nachverfolgt, gespeichert und organisiert wird. Die starke Unterstützung für Branching und Merging in Git ermöglicht es Entwicklungsteams, parallel an verschiedenen Features oder Projekten zu arbeiten, ohne sich gegenseitig zu stören. Durch die Verwendung von Git Repositories können Teams die Vorteile der Versionskontrolle voll ausschöpfen, einschließlich der Fähigkeit, frühere Versionen eines Projekts wiederherzustellen, Änderungen zu überprüfen und zusammenzuarbeiten.

  • Git installieren und konfigurieren

    • Die Installation und Konfiguration von Git auf einem Standard Windows-PC ist ein einfacher Prozess, der aus einigen Schritten besteht. 

      Git kann auf Windows sowohl über die Git Bash als auch über PowerShell genutzt werden. Die Konfigurationsbefehle bleiben größtenteils gleich, da Git seine eigene Befehlssyntax verwendet, die unabhängig von der Shell ist.

      Hier ist eine schrittweise Anleitung, wie man Git installiert, bezieht und konfiguriert, um mit der Arbeit beginnen zu können:

    • Linux-Systeme verwenden in der Regel Paketverwaltungssysteme, die die Installation von Software aus den Repositories erleichtern. Hier ist, wie Sie Git auf einem Ubuntu-System installieren und konfigurieren können:

  • Ein Git-Repository auf einem lokalen Rechner erstellen und initialisieren

    Hier ist eine schrittweise Anleitung, wie man ein neues Repository erstellt und initialisiert, ohne zunächst den Austausch mit anderen Entwicklern oder die Nutzung eines Remote-Repositories zu berücksichtigen.

  • Änderungen vornehmen, nachverfolgen und zurückrollen

    • Sie können umbenennen, löschen, kopieren und editieren.
      Gezeigt wird ein Beispiel mit umbenennen und editieren einer Datei,

    • Nach mehreren Änderungen und commits hat sich eine Historie des Projekts aufgebaut.
      Das Anzeigen der Commit-Historie ist ein wichtiger Aspekt beim Arbeiten mit Git, da es Ihnen ermöglicht, die Entwicklungsgeschichte Ihres Projekts nachzuvollziehen. Git bietet mehrere Befehle und Optionen, um die Historie Ihrer Commits auf unterschiedliche und detaillierte Weise zu betrachten.
      Durch den Einsatz verschiedener Optionen und Filter von git log können Sie spezifische Informationen abrufen, die für die Analyse und das Verständnis der Projektentwicklung nützlich sind.

    • git diff ist ein mächtiges Werkzeug im Git-Ökosystem, das die Unterschiede zwischen verschiedenen Git-Objekten, wie Commit-IDs, Arbeitsverzeichnis, Staging-Area (Index) und mehr, zeigt. Es wird hauptsächlich genutzt, um die Änderungen zu visualisieren, die gemacht wurden, aber noch nicht committet sind, oder um die Unterschiede zwischen verschiedenen Versionen eines Projekts zu vergleichen.


    • Zurückrollen zu einem früheren Commit.

      Das Zurückrollen (Revertieren) zu einem früheren Commit in Git ermöglicht es Ihnen, den Zustand Ihres Projekts zu einem bestimmten Zeitpunkt wiederherzustellen. Dies kann aus verschiedenen Gründen notwendig sein, beispielsweise wenn ein Fehler in die Codebasis eingeführt wurde. Git bietet mehrere Methoden, um dies zu erreichen, jede mit ihren eigenen Anwendungsfällen und Konsequenzen.

  • Branches

    Branches ermöglichen es Entwicklern, voneinander unabhängig Features, Fixes zu bearbeiten, ohne die bestehende,aktive Hauptcodebasis (üblicherweise der master oder main Branch) zu beeinträchtigen. Branches (Zweige)  spielen eine zentrale Rolle im Prozess der Versionskontrolle und der modularen Softwareentwicklung. Dies kann vom einzelnen Entwickler wie auch von Teams genutzt werden.

      • Feature-Branches: Für die Entwicklung neuer Features werden häufig separate Branches erstellt. Dies ermöglicht eine isolierte Entwicklung und Tests, bevor das Feature in den Hauptbranch integriert wird.
      • Bugfix-Branches: Ähnlich wie Feature-Branches werden Bugfix-Branches für die Arbeit an Bugfixes verwendet, um sicherzustellen, dass Korrekturen getestet werden können, ohne andere Teile des Projekts zu beeinflussen.
      • Experimentelle Branches: Branches können verwendet werden, um experimentelle Ideen oder größere Änderungen zu testen, ohne die Stabilität des Projekts zu gefährden.
      • Release-Branches: Einige Workflows verwenden dedizierte Branches für Release-Vorbereitungen, um letzte Anpassungen und Tests durchzuführen, bevor eine neue Version offiziell veröffentlicht wird.

    • Es kann interessant sein, den Unterschied zur ursprünglichen Branch zu beobachten, nachdem man etwas Neues in einer Branch ausprobiert hat.
      Um den Inhalt zweier Branches in Git detailliert zu vergleichen, bietet Git selbst einige nützliche Befehle, die es Ihnen ermöglichen, Unterschiede zwischen den Branches auf verschiedene Weisen zu analysieren

    • Das Zusammenführen (Merging) eines Feature Branch in den Hauptbranch ist ein häufiger Schritt in der Entwicklungsarbeit. Dieser Prozess integriert Änderungen, die in einem separaten Feature Branch entwickelt wurden, zurück in den Hauptbranch (oft main oder master genannt), so dass sie Teil der Hauptcodebasis werden.

      Das Mergen eines Feature-Branches in den Hauptbranch bei lokaler Arbeit mit Git ist ein einfacher Prozess, der sich auf das Wechseln in den Hauptbranch, das Durchführen des Merges und das Lösen von etwaigen Konflikten konzentriert. Im Gegensatz zur Arbeit mit einem Remote-Repository entfällt die Notwendigkeit, Änderungen zu pullen oder zu pushen, was den Prozess vereinfacht und beschleunigt. Diese Methode ermöglicht eine effektive Versionskontrolle und Feature-Integration, selbst wenn Sie offline oder in einer isolierten Entwicklungsumgebung arbeiten.

  • git Befehle Zusammenfassung

  • Entwickeln im Team

    • Die Entwicklung in einem Team stellt eine Reihe besonderer Herausforderungen dar, die sowohl technische als auch kommunikative Aspekte umfassen. Eine erfolgreiche Teamarbeit erfordert sorgfältige Planung, Koordination und Kooperation.

    • Bei der Arbeit in einem Team, das lokale Maschinen für die Entwicklung nutzt und GitHub als Remote-Repository verwendet, gibt es einige wesentliche Schritte und Konfigurationen, die auf den Entwicklermaschinen benötigt werden, um effektiv zusammenzuarbeiten. Hier ist eine Übersicht der benötigten Schritte und Einstellungen: