adesso SE · Praktikum
Kapitel 5 von 6

🌿 Git & Claude Code

Wie professionelle Teams ihren Code verwalten – und wie KI-Werkzeuge dabei helfen, schneller und besser zu entwickeln.

5.1
Git – Versionskontrolle
Das unverzichtbare Werkzeug für jeden Entwickler

Was ist Versionskontrolle?

Stell dir vor, du arbeitest wochenlang an einer Funktion – und plötzlich merkst du, dass du vor drei Tagen etwas kaputt gemacht hast. Ohne Versionskontrolle müsstest du manuell zurück. Mit Git kannst du zu jedem früheren Zustand deines Projekts zurückkehren.

Git ist ein Versionskontrollsystem: Es speichert jeden Änderungsschritt in deinem Projekt als sogenannten Commit, sodass du jederzeit sehen kannst, was sich wann und warum verändert hat – und von wem.

📸 Analogie: Schnappschüsse in der Zeit
Stell dir vor, du machst nach jeder wichtigen Änderung an einem Dokument einen Schnappschuss. Git macht genau das – jeder Commit ist ein Schnappschuss des gesamten Projekts. Du kannst jeden dieser Schnappschüsse jederzeit wiederherstellen, vergleichen oder sogar parallel weiterführen.

🔍 Die wichtigsten Git-Konzepte auf einen Blick

📦 Repository (Repo) Das gesamte Projekt inkl. gesamter Historie 💾 Commit Schnappschuss + Nachricht "Was wurde warum geändert" 🌿 Branch Parallele Entwicklungslinie Experimente ohne Risiko 🔀 Merge Branches zusammenführen Fertige Features integrieren Der typische Git-Arbeitsablauf Branch erstellen → Änderungen committen → Branch mergen → Weiterentwickeln Alles ist rückverfolgbar, nichts geht verloren

Die wichtigsten Git-Befehle – dein tägliches Handwerkszeug

Git wird über das Terminal gesteuert. Diese Befehle wirst du täglich verwenden:

Terminal – Git Grundbefehle
# Ein neues Repository anlegen ~/mein-projekt$ git init # Status: Was hat sich geändert? ~/mein-projekt$ git status On branch main – 2 files modified, 1 file new # Änderungen für den nächsten Commit vormerken (stagen) ~/mein-projekt$ git add index.html style.css # Commit erstellen mit aussagekräftiger Nachricht ~/mein-projekt$ git commit -m "Navigationsleiste mobile-freundlich gemacht" [main 4f2c3a1] Navigationsleiste mobile-freundlich gemacht # Commit-Geschichte ansehen ~/mein-projekt$ git log --oneline 4f2c3a1 Navigationsleiste mobile-freundlich gemacht b91e7d2 Startseite fertiggestellt a3c19f8 Projekt initialisiert

Branches – parallel entwickeln ohne Chaos

Das Mächtigste an Git sind Branches. Statt direkt auf dem Hauptcode zu arbeiten, erstellst du einen eigenen Zweig – änderst dort, was du willst – und führst ihn erst dann zusammen, wenn alles funktioniert.

🌳

main / master

Hauptzweig

Der stabile Hauptzweig. Hier landet nur Code, der funktioniert und getestet wurde. Direkt auf main zu arbeiten gilt als schlechte Praxis.

feature/login-seite

Feature-Branch

Für jede neue Funktion einen eigenen Branch. Mehrere Entwickler:innen können gleichzeitig an verschiedenen Features arbeiten, ohne sich gegenseitig zu stören.

🐛

fix/fehler-kontaktformular

Bugfix-Branch

Schnelle Fehlerbehebungen ohne laufende Features zu unterbrechen. Nach dem Fix wird der Branch gemergt und gelöscht.

Terminal – Mit Branches arbeiten
# Neuen Branch erstellen und wechseln ~/mein-projekt$ git checkout -b feature/login-seite Switched to a new branch 'feature/login-seite' # ... Änderungen machen, committen ... # Zurück zum Hauptzweig und mergen ~/mein-projekt$ git checkout main ~/mein-projekt$ git merge feature/login-seite Merge successful: feature/login-seite → main
💡

Gute Commit-Nachrichten sind Gold wert

Ein Commit mit der Nachricht „fix" hilft niemandem. Schreib stattdessen: „Kontaktformular: Fehlervalidierung für Telefonnummer hinzugefügt". In drei Monaten – oder wenn dein Kolleg nach dem Fehler sucht – macht das den Unterschied.

5.2
GitHub & Team-Workflows
Wie Teams zusammen an Code arbeiten

Git ≠ GitHub

Git ist das Werkzeug auf deinem Computer – das Versionskontrollsystem. GitHub ist eine Plattform im Internet, auf der du dein Git-Repository hochladen und mit anderen teilen kannst. Ähnlich wie Word dein Textverarbeitungsprogramm ist und Dropbox der Ort, wo du die Dokumente speicherst.

GitHub bietet darüber hinaus viele Team-Werkzeuge: Issue-Tracker, Code-Reviews, automatische Tests (GitHub Actions) und noch mehr. Fast jedes Open-Source-Projekt der Welt lebt auf GitHub.

☁️ Analogie: Git und GitHub
Git ist wie dein lokales Dokumenten-Archiv zu Hause. GitHub ist wie ein gemeinsames Cloud-Laufwerk, auf das dein Team zugreifen kann. Du arbeitest lokal, synchronisierst regelmäßig mit der Cloud – und dein Team sieht deine Fortschritte.

🔍 Lokaler Rechner ↔ GitHub – der Synchronisierungszyklus

💻 Dein Rechner (lokal) Working Directory Staging Area (git add) Lokales Repository (git commit) git push git pull 🐙 GitHub (remote) Remote Repository Pull Requests · Issues Actions · Wiki Sicherung & Team-Zugriff 👥 Team pull / push

Pull Requests – Code-Review im Team

Ein Pull Request (PR) ist eine Anfrage, deinen Branch in den Hauptzweig zu mergen. Vor dem Merge schaut mindestens eine andere Person deinen Code an – das nennt sich Code-Review. Dabei werden Fehler gefunden, bessere Lösungen vorgeschlagen und Wissen geteilt.

1

Branch erstellen & committen

Du entwickelst dein Feature auf einem eigenen Branch und pushst es zu GitHub.

2

Pull Request öffnen

Auf GitHub öffnest du einen PR und beschreibst: Was hast du gebaut? Warum? Wie kann man es testen?

3

Code-Review durch Kolleg:in

Jemand aus dem Team liest deinen Code, kommentiert, schlägt Verbesserungen vor – oder genehmigt den PR.

4

Merge & Branch aufräumen

Nach der Genehmigung wird der Branch in main gemergt. Der Feature-Branch wird gelöscht. Sauber!

Gute vs. schlechte Commit-Nachrichten

✅ So schreibt man Commits
  • „Passwort-Reset-Funktion implementiert"
  • „Fehler bei leerem Suchfeld behoben"
  • „Produktseite für Mobile optimiert"
  • „Datenbankverbindung auf Timeout 30s erhöht"
  • „Tests für UserService hinzugefügt"
❌ So schreibt man Commits nicht
  • „fix"
  • „Änderungen"
  • „asdfgh"
  • „wip"
  • „123"
🔄

Git bei adesso – der Alltag

Bei adesso arbeitet jedes Entwicklungsteam mit Git. Typischerweise hat jedes Projekt ein Remote-Repository auf GitHub oder GitLab. Jede neue Aufgabe (User Story) bekommt einen eigenen Branch, wird entwickelt, reviewed und gemergt. Das läuft täglich – manchmal mehrfach täglich.

5.3
Claude Code – KI im Entwickleralltag
Wie KI-Werkzeuge die Softwareentwicklung verändern

Was ist Claude Code?

Claude Code ist ein KI-gestütztes Kommandozeilen-Werkzeug von Anthropic. Es kann deinen Code lesen, verstehen, verändern und erklären – direkt aus dem Terminal, integriert in deinen Entwicklungsablauf.

Moderne Entwickler:innen nutzen KI-Werkzeuge nicht als Ersatz für eigenes Wissen, sondern als intelligenten Assistenten: Er hilft dabei, schneller zu sein, Fehler zu finden und Dinge zu lernen, die man noch nicht kennt.

👩‍💻 Analogie: Der erfahrene Kollege
Stell dir vor, neben dir sitzt ein Entwickler mit 10 Jahren Erfahrung, der jede Bibliothek, jedes Framework und jeden Sprachstandard kennt. Du kannst ihn jederzeit fragen: „Was bedeutet dieser Fehler?", „Wie würde ich das besser schreiben?", „Schreib mir einen Test für diese Funktion." Das ist Claude Code.

🔍 Was Claude Code kann – und was nicht

✅ Claude Code kann…
  • ✔ Code erklären, kommentieren und dokumentieren
  • ✔ Fehler (Bugs) analysieren und Lösungen vorschlagen
  • ✔ Tests schreiben für bestehende Funktionen
  • ✔ Code umstrukturieren (Refactoring)
  • ✔ Neue Funktionen nach Beschreibung implementieren
  • ✔ Mehrere Dateien gleichzeitig bearbeiten
⚠️ Wichtige Grenzen
  • ✗ Kein Zugriff auf das Internet zur Laufzeit
  • ✗ Kann sich irren – Ausgaben immer prüfen
  • ✗ Kein Ersatz für das eigene Verstehen des Codes
  • ✗ Sicherheitskritischen Code immer selbst reviewen
  • ✗ Keine Passwörter, API-Keys oder Credentials teilen

Claude Code in der Praxis

Claude Code läuft im Terminal direkt neben deinem Code. Hier ein typischer Arbeitsablauf:

Terminal – Claude Code in Aktion
# Claude Code starten ~/mein-projekt$ claude ╭─ Claude Code ──────────────────────────────╮ │ Bereit. Was soll ich tun? │ ╰────────────────────────────────────────────╯ Du: Erkläre mir, was die Funktion in api.py Zeile 47 macht Claude: Die Funktion `validate_email` prüft eine E-Mail-Adresse mit einem regulären Ausdruck. Sie gibt True zurück wenn das Format gültig ist, sonst False. Allerdings prüft sie nicht, ob die Adresse tatsächlich existiert. Du: Schreib einen Test dafür Claude: Ich erstelle test_api.py mit 5 Testfällen... ✓ Fertig

Effektiv mit KI kommunizieren – Prompt-Tipps für Entwickler

Die Qualität der KI-Antwort hängt stark davon ab, wie du fragst. Gute Prompts sind präzise, geben Kontext und nennen das Ziel:

Schlecht
„Mein Code funktioniert nicht"
Kein Kontext, keine Fehlermeldung, kein erwartetes Verhalten – kaum hilfreich.
Gut
„Meine Python-Funktion `calculate_total()` in cart.py gibt None zurück statt der Summe. Hier ist der Code: [Code einfügen]. Fehlermeldung: TypeError: unsupported operand type. Was ist falsch?"
Sprache, Dateiname, erwartetes Verhalten, tatsächliches Verhalten, Fehlermeldung, Code – alles da.
Noch besser
„Ich entwickle einen Warenkorb in Python. Schreib mir eine Funktion `calculate_total(items: list[dict]) -> float`, die die Summe aller Preise berechnet. Jedes Item hat die Felder 'price' (float) und 'quantity' (int). Füge auch einen Test hinzu."
Typen, Kontext, Datenstruktur, Erwartung – der KI fehlt nichts zum Implementieren.
🤖
Claude Code
KI-Entwicklungsassistent von Anthropic
Du
Ich habe einen Merge-Konflikt in Git. Was bedeutet das und wie löse ich es?
Claude
Ein Merge-Konflikt entsteht, wenn zwei Branches dieselbe Stelle in einer Datei unterschiedlich verändert haben – Git weiß dann nicht, welche Version die richtige ist.

So löst du es: Öffne die betroffene Datei, du siehst Markierungen wie <<<<<<< HEAD (deine Version) und >>>>>>> branch-name (die andere Version). Entscheide, welchen Code du behalten willst, lösche die Markierungen, und mache dann einen neuen Commit. Soll ich dir die Datei zeigen?
Du
Ja, und kannst du danach direkt die Konflikte auflösen?
Claude
Ja! Zeig mir die Datei und sag mir, welche Logik du behalten willst – dann löse ich die Konflikte direkt auf und erkläre dir dabei, was ich warum entscheide.
🚀

KI + eigenes Verstehen = unschlagbar

Die besten Entwickler:innen nutzen KI-Werkzeuge täglich – aber sie verstehen, was der generierte Code macht, bevor sie ihn übernehmen. KI beschleunigt die Arbeit; das eigene Verständnis sorgt dafür, dass gute Entscheidungen getroffen werden. Beides zusammen ist mächtiger als jedes Einzelne.