Der Spickzettel zum Seminar Git & KI-Agenten in der Praxis — für den Moment, in dem die Historie unübersichtlich geworden ist, zwei Agenten sich im selben Ordner überschreiben oder jemand fragt, welche Rechte der Token eigentlich hat. Maßgeblich für alle Befehle ist die Git-Dokumentation; hier steht die Auswahl, die im Umgang mit generiertem Code wirklich gebraucht wird. Zum Lernen taugt das Blatt nicht — dafür ist das Seminar da. Jeder Abschnitt verweist auf sein Quellmodul.
Vier Ansatzpunkte im Weg zur Produktion
Zwischen Prompt und Deployment liegt eine feste Kette. An vier Übergabestellen kann Git eingreifen — je weiter vorn, desto billiger die Korrektur; je weiter hinten, desto verbindlicher.
| Station | Was Git beiträgt |
|---|---|
| Vor dem Prompt | Anweisungsdatei im Repository — gleicher Start für alle Modelle |
| Beim Commit | Commit-Vorlage erzwingt eine brauchbare Nachricht |
| Vor dem Commit | Pre-Commit-Hook prüft lokal, was sonst die CI meldet |
| Vor dem Merge | Branch-Schutz und Pull Request als letzte Instanz |
Modul: Git und KI verstehen
Chat-Verlauf oder Commit — was wohin gehört
| Merkmal | Chat-Verlauf | Commit |
|---|---|---|
| Inhalt | Absicht und Begründung | Geänderte Dateien |
| Ort | Werkzeug oder Sitzung | Repository |
| Lebensdauer | Endet mit der Sitzung | Dauerhaft |
| Für Kollegen | Meist nicht sichtbar | Für alle lesbar |
Daraus folgt die Arbeitsregel: Alles, was ein anderer Mensch später brauchen könnte, gehört in den Commit. Der Prompt taugt nicht als Nachricht — er nennt selten Dateien, und die Begründung steckt in der Zwischenargumentation des Agenten.
Modul: KI-generierte Commits verwalten
bisect — den fehlerhaften Commit finden
Binäre Suche über die Historie: aus sieben Commits werden drei Prüfungen, aus siebzig sieben.
git bisect start
git bisect good <sauberer-stand>
git bisect bad <fehlerhafter-stand>
# Git checkt den mittleren Commit aus — beurteilen, dann:
git bisect good # oder: git bisect bad
git bisect reset # Pflicht, sonst bleibt ein loser HEAD
git bisect run <skript> durchläuft die Prüfung selbst, wenn sich das
Kriterium als Skript formulieren lässt. Weitere Werkzeuge zum Lesen der
Historie: git log --oneline, git blame -L 20,30 <datei>.
Modul: KI-generierte Commits verwalten
Commit korrigieren — neuer Commit oder Rebase
| Neuer Commit obendrauf | Interaktives Rebase |
|---|---|
| Commit ist schon gepusht | Commit ist nur lokal |
| Viele Mitwirkende am Repo | Kleines Team, kurze Wege |
| Fehler liegt nah an HEAD | Viele Commits seither |
| Historie bleibt stabil | Historie wird neu geschrieben |
Entscheidend ist die erste Zeile: Was gepusht ist, wird nicht umgeschrieben.
git rebase -i <vorgaenger-des-commits> # nicht der Commit selbst
# im Editor: pick -> edit
git add <datei> && git commit --amend --no-edit
git rebase --continue
Modul: KI-generierte Commits verwalten
Commits verdichten — pick, squash, fixup
| Weg | Wann er passt |
|---|---|
| Interaktives Rebase | Nur ein Teil der Commits soll zusammen |
| Reset und neuer Commit | Alle Änderungen, alte Nachrichten egal |
| Squash im Pull Request | Schon gepusht, Zielbranch soll sauber sein |
git rebase -i HEAD~5
pick <aeltester> # nimmt die anderen auf
squash <weiterer> # Nachricht kommt in den Editor
fixup <weiterer> # Nachricht wird verworfen
Git listet im Editor von alt nach neu — anders als git log. Der oberste
Eintrag trägt das pick.
Modul: KI-generierte Commits verwalten
Worktrees — mehrere Agenten, ein Repository
| Ansatz | Preis |
|---|---|
| Repository ein zweites Mal klonen | Langsam, belegt viel Plattenplatz |
| Unterordner je Agent im Projekt | Projektstruktur verbiegt sich |
| Alle im selben Ordner arbeiten lassen | Konflikte nach Zufallsprinzip |
| Worktrees | Ein Repository, mehrere Arbeitsverzeichnisse |
git worktree add -b <branch> ../worktrees/<name> # neuer Branch
git worktree add ../worktrees/<name> <branch> # bestehender Branch
git worktree list
git worktree remove ../worktrees/<name> # Pfad, nicht Branch
Der Worktree-Ordner liegt neben dem Projekt, nicht darin. Er enthält keinen eigenen Git-Speicher — dafür fehlen ihm alle nicht versionierten Dateien, Abhängigkeiten also vor dem ersten Lauf installieren. Denselben Branch kann Git nicht zweimal auschecken.
Modul: Parallele KI-Agenten mit Git
Conventional Commits
| Teil | Inhalt |
|---|---|
| Typ | fix, feat, ci, docs, refactor, test |
| Geltungsbereich | Optional, etwa api oder frontend |
| Beschreibung | Handlungsorientiert, unter 50 Zeichen |
| Rumpf | Ausführlich, ohne Längenbegrenzung |
| Fußzeile | Breaking Change, Referenzen, Prüfer |
fix(api): Sortierparameter umbenannt
Der Parameter folgt jetzt der API-Konvention.
BREAKING CHANGE: sortBy heißt jetzt sort
Die Leerzeile vor der Fußzeile ist Pflicht — Werkzeuge erkennen sie nur daran. Vorlage bereitstellen und registrieren:
git config commit.template .gittools/commit-vorlage.txt
Das ist eine lokale Einstellung: Die Datei ist geteilt, ihre Nutzung nicht.
Modul: Codequalität mit Git sichern
Prüfungen: lokal, Hook oder Pipeline
| Ort | Stärke | Schwäche |
|---|---|---|
| Lokal von Hand | Schnell, früh | Man muss daran denken |
| Pre-Commit-Hook | Läuft zuverlässig | Nur lokal, umgehbar |
| CI/CD-Pipeline | Belegbar für alle | Langsam, spät, wartet |
# .githooks/pre-commit — ausfuehrbar machen, sonst laeuft er nie
#!/bin/sh
npm test || exit 1
npm run lint
.git/hooks wird nicht versioniert. Deshalb umziehen und registrieren:
git config core.hooksPath .githooks
Faustregel: Was länger als eine Minute braucht, gehört nicht in den Hook — er
wird sonst mit --no-verify umgangen. Damit die Einrichtung im Team ankommt:
Anleitung im README (kleines Team), ein Werkzeug der jeweiligen Sprache (etwa
Husky für Node) oder ein Skript in der ohnehin vorhandenen Projekteinrichtung.
Ohne einen dieser Wege prüft nur, wer den Befehl zufällig kannte.
Modul: Codequalität mit Git sichern
KI-Richtlinie — was Git tragen kann
| Baustein | Umsetzung |
|---|---|
| Eingaben nicht als Trainingsdaten | Vertrag und Konfiguration, nicht Git |
| KI-Commits kenntlich machen | Attribution im Commit oder in Notes |
| KI prüft Code zusätzlich zum Menschen | Review am Diff, lokal oder remote |
| Einheitliche Anweisungen je Repository | Anweisungsdatei im Repository |
Drei der vier Bausteine lassen sich im Repository nachweisen. Der erste ist der wichtigste und der einzige ohne Git-Antwort — er hängt an Vertrag und Kontoeinstellung beim Anbieter. Zu jedem Punkt gehört die Frage, woran die Einhaltung erkennbar ist; ohne Nachweis bleibt eine Richtlinie eine Absichtserklärung.
Modul: KI-Governance mit Git erfüllen
Attribution — welcher Code kam von der KI
| Kriterium | Co-Autor-Zeile | PR-Vorlage | Git-Notes |
|---|---|---|---|
| Einrichtung | Schalter in der IDE | Vorlage ändern | Werkzeug ausrollen |
| Laufender Aufwand | Keiner | Je PR von Hand | Keiner |
| Durchsetzbarkeit | Keine | Geteilt im Team | Zentral steuerbar |
| Portabilität | Teil des Commits | An Plattform gebunden | Meist im Repo |
| Detailtiefe | Je Commit | Je Pull Request | Je Zeile, mit Prompt |
Die Wahl folgt dem Zweck der Auswertung, nicht dem geringsten Aufwand. Müssen die Zahlen vollständig sein, fällt die erste Spalte aus — sie hängt an einem Schalter, den jeder abstellen kann.
Co-authored-by: Coding-Agent <agent@example.com>
Modul: KI-Governance mit Git erfüllen
KI-Review — wo es trägt und wo nicht
| Dafür geeignet | Dafür ungeeignet |
|---|---|
| Bekannte Schwachstellenmuster | Fachliche Geschäftslogik |
| Versehentlich eingecheckte Geheimnisse | Hausinterne Schwellenwerte |
| Nicht behandelte Fehlerfälle | Architektur über das Repo hinaus |
| Offensichtliche Performance-Fallen | Fehlende Anforderungen |
| Tote Codepfade, Rechenfehler | Stil und Testabdeckung |
Alles links sind Muster, die überall gleich aussehen; alles rechts verlangt Kontext, den das Modell nicht hat. Stil und Abdeckung messen bewährte Werkzeuge billiger. Gebunden wird das Review an den Diff, nicht an das Repository.
| Kriterium | Lokal | Remote |
|---|---|---|
| Nachweisbarkeit | Schwach | Stark |
| Arbeitsplatz blockiert | Ja | Nein |
| Fehler früh und privat | Ja | Nein |
| Wahl des Modells | Frei | Oft vorgegeben |
| Schnelle Rückmeldung | Ja | Erst nach dem Push |
Modul: KI-Governance mit Git erfüllen
Anweisungsdatei für Agenten
Markdown im Repository mit Projektüberblick (Technologien mit Versionen), häufigen Befehlen, Stilregeln, Testerwartungen und Sicherheitsvorgaben. Unter 100 Zeilen bleiben, üblich sind 40 bis 80 — was zu lang ist, wird nicht vollständig behalten. Agenten suchen im Verzeichnisbaum nach oben und nehmen die nächstgelegene Datei; in großen Repositories lohnt deshalb eine je Teilprojekt.
| Eine universelle Datei | Je Modell eine Datei |
|---|---|
| Eine Quelle, ein Pflegeaufwand | Mehrere Dateien pflegen |
| Modellspezifisches bleibt ungenutzt | Besondere Fähigkeiten nutzbar |
| Passend bei vielen Werkzeugen | Passend bei ein bis zwei Modellen |
| Einmalige Konfiguration nötig | Namenskonvention genügt |
Konkret schlägt vollständig: „Testabdeckung 100 %” wirkt, „Abdeckung gesund halten” nicht. Die Datei steuert Verhalten — sicherheitstechnisch wie eine Pipeline-Konfiguration behandeln.
Modul: KI-Governance mit Git erfüllen
Branch Protection
| Gruppe | Beispiele |
|---|---|
| Integrität | Anlegen, Ändern und Löschen einschränken |
| Historie | Lineare Historie, signierte Commits verlangen |
| Prüfungen | Abhängigkeits- und Sicherheitsscans, Stil, Abdeckung |
| Dateibezug | Bestimmte Pfade und Dateitypen besonders schützen |
Regeln für Pull Requests, die zusammengehören: keine Selbstfreigabe, mindestens eine Freigabe verlangen (ohne sie greift die erste Regel ins Leere), Freigaben bei neuen Commits zurücksetzen, für sensible Pfade eine feste Prüfergruppe. Dazu Force Push und Branch-Löschung sperren.
Speziell gegen Agenten: Anweisungsdatei und Pipeline-Konfiguration unter Pfadschutz stellen, mit einer Prüfergruppe ohne Agentenzugang — so kann ein Agent seine eigenen Leitplanken nicht ändern. Ein Agent unter Ihrem Zugang ist in dieser Logik keine zweite Person.
Modul: Schutzmechanismen im Repository
Zugangstoken zuschneiden
Drei Angaben legen alles fest: Laufzeit, Umfang, Rechte. Danach handelt der Agent in diesem Rahmen — ohne Rückfrage.
| Merkmal | Zu weit | Zu eng | Ausgewogen |
|---|---|---|---|
| Laufzeit | Unbegrenzt | Eine Woche | 90 Tage |
| Umfang | Alle Repos | Ein Repo | Projekt und Bibliotheken |
| Inhalte und PRs | Schreiben, überall | Nur lesen | Schreiben im Projekt |
| Verwaltung | Schreiben | Kein Zugriff | Lesen, wenn nötig |
Die Berechtigung Inhalte umfasst mehr als Dateien: auch Commits und Branches. Verwaltung umfasst Einstellungen, Mitglieder — und das Löschen des Repositories; für das Schreiben von Code ist sie fast nie nötig. Der ausgewogene Schnitt setzt geschützte Branches voraus.
Modul: Schutzmechanismen im Repository
Typische Fallen
- good und bad vertauschen — die bisect-Suche läuft in die falsche Richtung und liefert ein plausibles, falsches Ergebnis.
- Beim Rebase den Commit selbst angeben statt seinen Vorgänger. Der zu ändernde Eintrag steht dann gar nicht in der Liste.
- Gepushte Commits umschreiben, ohne das Team zu informieren. Technisch möglich, sozial teuer.
- Zu weit verdichten — zwei fachlich getrennte Änderungen in einem Commit lassen sich nicht mehr einzeln zurücknehmen.
- Den Worktree-Ordner von Hand löschen. Der Eintrag bleibt zurück und zeigt
ins Leere; dafür gibt es
git worktree remove. - Den Hook nicht ausführbar machen. Git startet ihn dann stillschweigend nicht — keine Meldung, kein Commit-Abbruch, falsche Sicherheit.
- Den Hook für eine Sicherheitsmaßnahme halten.
--no-verifyhebelt ihn aus; Verbindlichkeit gibt es nur auf dem Server. - Anweisungsdateien ungeschützt lassen. Sie sehen aus wie Dokumentation, steuern aber Verhalten.
- Selbstfreigabe sperren, ohne einen Prüfer zu verlangen — eine Regel ohne Wirkung.
- Einen unbefristeten Token mit allen Rechten erzeugen, weil es beim Einrichten schneller geht. Diese Abkürzung überlebt Jahre.
- Sicherheitsanweisungen in den Prompt schreiben und für wirksam halten. Sie sind eine Bitte, keine technische Schranke.
- Generierten Code milder beurteilen als handgeschriebenen — es fühlt sich niemand angegriffen, deshalb passiert es häufiger, als man zugibt.
Module: KI-generierte Commits verwalten · Parallele KI-Agenten mit Git · Codequalität mit Git sichern · Schutzmechanismen im Repository