25  GitHub Repos

Ein Repository (oft abgekürzt als “Repo”) auf GitHub dient als zentraler Speicherort für alle Dateien eines Projekts und deren Versionsverlauf.

Ein Repository ist wie ein digitaler Ordner, der nicht nur aktuelle Dateien, sondern auch deren gesamte Entwicklungsgeschichte enthält.

Repositories ermöglichen die Organisation von Arbeit, Zusammenarbeit mit anderen, Verfolgung von Codeänderungen und Verwaltung verschiedener Projektversionen.

Bei der Arbeit mit GitHub gibt es zwei Hauptarten von Repositories:

  1. Öffentliche Repositories:

    Öffentliche Repositories sind für jeden Internetnutzer sichtbar und zugänglich. Sie bieten folgende Vorteile:

    • Maximale Transparenz und Sichtbarkeit des Projekts
    • Förderung von Zusammenarbeit und Beiträgen aus der Community
    • Ideal für Open-Source-Projekte und gemeinnützige Initiativen

    Beispiele für erfolgreiche öffentliche Repositories sind Linux, TensorFlow und VS Code.

  2. Private Repositories:

    Private Repositories sind nur für ausgewählte Benutzer zugänglich, die explizit eingeladen wurden. Sie eignen sich für:

    • Projekte mit sensiblen oder proprietären Informationen
    • Interne Unternehmensprojekte
    • Persönliche Projekte, die noch nicht für die Öffentlichkeit bestimmt sind
    • Entwicklung von kommerziellen Produkten oder Dienstleistungen

    Private Repositories bieten erhöhte Sicherheit und Kontrolle über den Zugriff auf den Quellcode.

Die Wahl zwischen öffentlich und privat hängt von den Projektanforderungen und Datenschutzbedenken ab. Es ist möglich, ein Repository von privat zu öffentlich zu ändern (und umgekehrt), wenn sich die Anforderungen im Laufe der Zeit ändern. Einige Plattformen bieten auch die Option für interne Repositories, die nur für Mitglieder der Organisation sichtbar sind.

Ein gut strukturiertes Repository erleichtert die Navigation, das Verständnis und die Zusammenarbeit im Projekt. Hier sind die wichtigsten Elemente:

Eine klare und konsistente Repository-Struktur erleichtert es neuen Mitwirkenden, sich im Projekt zurechtzufinden und effektiv beizutragen. Es ist ratsam, bewährte Praktiken der jeweiligen Programmiersprache oder des Frameworks zu befolgen.

25.1 Erstellung eines Repo

GitHub-Repositories können mit essentiellen Dateien wie README, .gitignore und einer Lizenz initialisiert werden, um dem Projekt von Anfang an Struktur und Klarheit zu verleihen.

Folgende Schritte führen durch den Prozess der Repository-Erstellung:

  1. Anmelden bei GitHub

    • Die GitHub-Website im Webbrowser öffnen.
    • Mit dem GitHub-Konto anmelden. Falls noch kein Konto vorhanden ist, muss zunächst eines erstellt werden (siehe GitHub Setup).
  2. Zum Dashboard navigieren

    • Nach erfolgreicher Anmeldung wird das persönliche GitHub-Dashboard angezeigt.
  3. Neues Repository erstellen

    • Auf das +-Symbol in der oberen rechten Ecke klicken und “New Repository” aus dem Dropdown-Menü wählen.
  4. Repository-Details eingeben

    • Repository template: “No template” auswählen.
    • Repository name: Den Namen hello-github eingeben.
    • Description: Wir verzichten hier auf eine Beschreibung. Dieses Feld hilft anderen zu verstehen, worum es bei dem Projekt geht.
    • Public or Private: Wir wählen Public. Hier können wir entscheiden, ob das Repository öffentlich (für jeden sichtbar) oder privat (nur für uns und Personen, denen wir explizit Zugriff gewähren) sein soll.

    :::{.callout-tip} Repository-Namen sollten prägnant und beschreibend sein, um den Inhalt oder Zweck des Projekts auf den ersten Blick zu vermitteln. :::

  5. Repository initialisieren

    • README file: Das Kontrollkästchen “Add a README file” aktivieren. Eine README-Datei dient als Einstiegspunkt und Übersicht für das Projekt. Sie sollte eine kurze Beschreibung, Installationsanweisungen und Nutzungshinweise enthalten.

    • .gitignore: Die Python-Vorlage wählen.

    :::{.callout-note} Eine .gitignore-Datei definiert, welche Dateien und Verzeichnisse von der Versionskontrolle ausgeschlossen werden sollen, z.B. temporäre Dateien oder vertrauliche Informationen. :::

    • License: Die MIT License auswählen.

    :::{.callout-tip} Die Wahl einer Lizenz legt fest, wie andere Ihr Projekt nutzen, modifizieren und teilen dürfen. Die MIT-Lizenz ist besonders permissiv und erlaubt eine breite Nutzung, solange der ursprüngliche Copyright-Hinweis beibehalten wird. :::

  6. Repository erstellen

    • Auf die grüne Schaltfläche “Create repository” klicken, um das neue Repository auf GitHub zu generieren.

25.2 Klonen eines Repo

Das Klonen eines Repositorys erzeugt eine lokale Kopie eines Remote-Repositorys auf dem eigenen Computer. Dies ermöglicht offline Arbeit an den Projektdateien, lokale Änderungen und anschließende Synchronisation mit dem Remote-Repository auf GitHub.

Schritte zum Klonen eines Repositorys:

  1. GitHub öffnen

    • GitHub im Webbrowser öffnen und zum hello-github-Repository navigieren.
    • Auf der Hauptseite des Repositorys die grüne Schaltfläche “Code” anklicken.
  2. Klon-Option auswählen

    • Im Dropdown-Menü “Open with GitHub Desktop” wählen. Dies startet GitHub Desktop und initiiert den Klonvorgang.
    • Bei Aufforderung durch den Browser die Öffnung von GitHub Desktop bestätigen.
  3. Mit GitHub Desktop klonen

    • In GitHub Desktop öffnet sich ein Dialogfeld zur Bestätigung des lokalen Pfads für das Repository.
    • Das Verzeichnis toolkit-lab auf dem lokalen Rechner als Zielort für das hello-github-Repository auswählen.

    :::{.callout-warning} Es ist wichtig sicherzustellen, dass das gewählte Verzeichnis nicht mit Cloud-Speicherdiensten wie iCloud, OneDrive oder Google Drive synchronisiert wird. Eine Synchronisierung mit diesen Diensten kann zu Konflikten und Problemen mit dem Git-Repository führen. :::

    • Auf “Clone” klicken, um das hello-github-Repository auf den lokalen Rechner herunterzuladen.
  4. Repository in GitHub Desktop öffnen

    • Nach Abschluss des Klonvorgangs öffnet GitHub Desktop automatisch das hello-github-Repository.

25.3 Commits verwenden

Nach dem Klonen des hello-github-Repositorys auf den lokalen Rechner folgt die Arbeit an den Projektdateien. Visual Studio Code (VS Code) wird verwendet, um das Repository zu öffnen und Änderungen vorzunehmen.

Schritte zum Öffnen und Bearbeiten des hello-github-Repositorys in VS Code:

  1. VS Code öffnen
    • Visual Studio Code auf dem Computer starten.
  2. Geklontes Repository öffnen
    • In VS Code “Datei > Ordner öffnen…” wählen.
    • Zum Verzeichnis toolkit-lab/hello-github navigieren und den Ordner hello-github auswählen.
    • “Ordner auswählen” klicken, um das Repository in VS Code zu öffnen.
  3. Dateien erstellen oder ändern
    • In VS Code können nun neue Dateien erstellt oder bestehende Dateien bearbeitet werden. Beispiel für das Erstellen einer neuen Python-Datei:
      • Im Explorer-Panel (linke Seitenleiste) Rechtsklick und “Neue Datei” wählen.
      • Die Datei script.py nennen und Python-Code hinzufügen. Änderungen speichern.
  4. Änderungen in GitHub Desktop anzeigen
    • Nach Vornahme von Änderungen in VS Code zu GitHub Desktop wechseln. Die Änderungen werden in der linken Seitenleiste angezeigt.
  5. Änderungen abrufen (Fetch)
    • Zunächst sicherstellen, dass keine Änderungen im Remote-Repository hello-github vorliegen, die lokal noch nicht vorhanden sind. Dazu auf “Fetch origin” klicken und anschließend “Pull”, um das lokale Repository mit den neuesten Änderungen zu aktualisieren.
  6. Änderungen stagen
    • Das Stagen bezeichnet die Auswahl der Änderungen, die in den nächsten Commit aufgenommen werden sollen.
    • In GitHub Desktop eine Liste der geänderten Dateien anzeigen lassen. Zum Stagen von Änderungen:
      • Kontrollkästchen neben den Dateien aktivieren, die in den Commit aufgenommen werden sollen.
      • Alternativ “Stage All” klicken, um alle Änderungen auf einmal zu stagen.
  7. Änderungen committen
    • Ein Commit speichert die gestagten Änderungen mit einer beschreibenden Nachricht, die die vorgenommenen Änderungen erklärt.
    • Eine kurze, aber aussagekräftige Commit-Nachricht in das Feld “Summary” eingeben. Beispiel: “Füge initiales Python-Skript hinzu”.
    • “Commit to main” klicken, um die Änderungen im lokalen Repository zu speichern.
  8. Änderungen pushen
    • Nach dem Committen der Änderungen auf “Push origin” oben klicken, um die Änderungen in das Remote-Repository hello-github auf GitHub hochzuladen.
Beste Praktiken für Commits
  • Häufige, kleine Commits durchführen: Dies erleichtert das Nachverfolgen von Änderungen und ermöglicht bei Bedarf einfacheres Zurücksetzen.
  • Klare Commit-Nachrichten verfassen: Eine präzise Beschreibung der vorgenommenen Änderungen hilft bei der späteren Nachvollziehbarkeit.
  • Regelmäßig pushen: Durch regelmäßiges Pushen der Commits zum Remote-Repository wird sichergestellt, dass die Arbeit gesichert ist und andere Teammitglieder Zugriff auf die neuesten Änderungen haben.