App-Entwicklung
Backend-Entwicklung

Einführung in Git

Steht Git nun für global information tracker oder doch goddamn idiotic truckload of sht* (laut Linus Torvalds)? Egal, auf jeden Fall ist es das heute meist eingesetzte Tool für die Quellcodeverwaltung. Dieser Kurs bietet Ihnen eine Einführung in Git, von den Grundkonzepten über das Arbeiten mit Branches bis zur Verwendung der Kommandozeile und der Nutzung von Git mit Visual Studio und Visual Studio Code.

Dieser Kurs richtet sich an Softwareentwickler unabhängig von ihrer Programmiersprache.

  1. Einführung in Git

    • Vergleich von Quellcodeverwaltungssystemen (zentralisiert vs. verteilt)
    • Gits Designphilosophie und Vorteile
    • Überblick über gängige Git-Workflows
    • Grundlagen der Git-Kommandozeile
    • Git-Interna: Objekte, Referenzen und das .git-Verzeichnis
    • Verstehen von Commits, Trees und Blobs
  2. Arbeiten mit Repositories

    • Klonen bestehender Repositories
    • Initialisieren neuer Repositories
    • Git konfigurieren (Benutzeridentität, Editor, Aliases)
    • Dateien und Verzeichnisse hinzufügen und entfernen
    • Die Staging Area (Index) und ihre Rolle
    • Dateien mit .gitignore ignorieren
  3. Änderungen verfolgen

    • Der Git-Workflow: Working Directory, Staging, Repository
    • Änderungen mit aussagekräftigen Nachrichten committen
    • Diffs anzeigen und verstehen
    • Commits nachträglich ändern (amend)
    • Arbeit zwischenspeichern mit Stash
  4. Historie und Repository-Status

    • Im Git-Repository suchen (git grep, git log filtern)
    • Status von Git-Objekten prüfen
    • Log-Analyse und Visualisierung (git log Optionen, Graphen)
    • Datei-Historie und Annotationen anzeigen (git blame)
    • Commits, Branches und Tags vergleichen
  5. Branches und Merges

    • Branches als leichtgewichtige Pointer verstehen
    • Branches erstellen und wechseln
    • Branches mergen (Fast-Forward vs. Three-Way-Merge)
    • Merge-Konflikte Schritt für Schritt auflösen
    • Merge-Strategien und -Optionen
    • Commits rebasen: wann und warum
    • Interaktives Rebase zum Aufräumen der Commit-Historie
    • Spezifische Commits cherry-picken
  6. Arbeiten im Team

    • Remote-Repositories: hinzufügen, fetchen, pullen, pushen
    • Centralized Workflow (einzelnes gemeinsames Repository)
    • Feature Branch Workflow (Topic Branches und Pull Requests)
    • Gitflow Workflow (Master, Develop, Feature, Release, Hotfix Branches)
    • Forking Workflow (Open-Source-Kollaborationsmodell)
    • Workflows vergleichen: den richtigen für Ihr Team wählen
    • Mono-Repos vs. Multi-Repos: Abwägungen und Überlegungen
    • Submodules und Subtrees für Dependency Management nutzen
  7. Fehler beheben

    • Commits über Branches hinweg cherry-picken
    • Änderungen rückgängig machen: reset vs. revert vs. restore
    • Verlorene Commits mit Reflog wiederherstellen
    • Housekeeping: Garbage Collection, Pruning und Repository-Wartung
    • Historie umschreiben: Risiken und Best Practices
    • Umgang mit detached HEAD State
  8. Git mit IDEs

    • Git in Visual Studio verwenden
    • Git in Visual Studio Code verwenden
    • GUI-Tools für Visualisierung und Konfliktauflösung nutzen
    • Integration mit GitHub, Azure DevOps, GitLab
  9. Was kommt als Nächstes: Git in der DevOps-Pipeline

    • Continuous Integration mit Git Hooks und Automatisierung
    • Continuous Delivery und Deployment-Trigger
    • Deployment-Patterns und Branching-Strategien
    • Semantic Versioning und Release-Tagging
    • Code-Review-Workflows und Pull-Request-Best-Practices
  10. Tipps, Tricks & Best Practices

    • Effektive Commit-Nachrichten schreiben
    • Commit early, commit often
    • Commits atomar und fokussiert halten
    • Branch-Namenskonventionen
    • Wann rebasen vs. mergen
    • Repositories absichern und sensible Daten handhaben
    • Git-Aliases und Produktivitäts-Shortcuts
    • Häufige Probleme beheben
Highlight

Nach Abschluss dieses Kurses können die Teilnehmer:

  • Die Architektur von Git verstehen und erklären, wie sie sich von zentralisierten Versionskontrollsystemen unterscheidet.
  • Git-Repositories effektiv erstellen, klonen und verwalten.
  • Änderungen verfolgen, Dateien stagen und Arbeit mit aussagekräftigen Nachrichten committen.
  • Die Repository-Historie durchsuchen und Commits finden.
  • Branches selbstbewusst erstellen, mergen und verwalten.
  • Merge-Konflikte systematisch auflösen.
  • Mit Teams u
Voraussetzungen
  • Grundkenntnisse in der Verwendung von Kommandozeilen-Interfaces
  • Erfahrung mit einer beliebigen Programmiersprache
  • Verständnis grundlegender Softwareentwicklungskonzepte
An unhandled error has occurred. Reload 🗙