Start / Cheat Sheets

Cheat Sheet

Git & KI-Agenten — Cheat Sheet

Stand: · Git & KI-Agenten in der Praxis

GitKI-AgentenWorktreesBranch Protection

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.

StationWas Git beiträgt
Vor dem PromptAnweisungsdatei im Repository — gleicher Start für alle Modelle
Beim CommitCommit-Vorlage erzwingt eine brauchbare Nachricht
Vor dem CommitPre-Commit-Hook prüft lokal, was sonst die CI meldet
Vor dem MergeBranch-Schutz und Pull Request als letzte Instanz

Modul: Git und KI verstehen

Chat-Verlauf oder Commit — was wohin gehört

MerkmalChat-VerlaufCommit
InhaltAbsicht und BegründungGeänderte Dateien
OrtWerkzeug oder SitzungRepository
LebensdauerEndet mit der SitzungDauerhaft
Für KollegenMeist nicht sichtbarFü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 obendraufInteraktives Rebase
Commit ist schon gepushtCommit ist nur lokal
Viele Mitwirkende am RepoKleines Team, kurze Wege
Fehler liegt nah an HEADViele Commits seither
Historie bleibt stabilHistorie 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

WegWann er passt
Interaktives RebaseNur ein Teil der Commits soll zusammen
Reset und neuer CommitAlle Änderungen, alte Nachrichten egal
Squash im Pull RequestSchon 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

AnsatzPreis
Repository ein zweites Mal klonenLangsam, belegt viel Plattenplatz
Unterordner je Agent im ProjektProjektstruktur verbiegt sich
Alle im selben Ordner arbeiten lassenKonflikte nach Zufallsprinzip
WorktreesEin 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

TeilInhalt
Typfix, feat, ci, docs, refactor, test
GeltungsbereichOptional, etwa api oder frontend
BeschreibungHandlungsorientiert, unter 50 Zeichen
RumpfAusführlich, ohne Längenbegrenzung
FußzeileBreaking 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

OrtStärkeSchwäche
Lokal von HandSchnell, frühMan muss daran denken
Pre-Commit-HookLäuft zuverlässigNur lokal, umgehbar
CI/CD-PipelineBelegbar für alleLangsam, 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

BausteinUmsetzung
Eingaben nicht als TrainingsdatenVertrag und Konfiguration, nicht Git
KI-Commits kenntlich machenAttribution im Commit oder in Notes
KI prüft Code zusätzlich zum MenschenReview am Diff, lokal oder remote
Einheitliche Anweisungen je RepositoryAnweisungsdatei 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

KriteriumCo-Autor-ZeilePR-VorlageGit-Notes
EinrichtungSchalter in der IDEVorlage ändernWerkzeug ausrollen
Laufender AufwandKeinerJe PR von HandKeiner
DurchsetzbarkeitKeineGeteilt im TeamZentral steuerbar
PortabilitätTeil des CommitsAn Plattform gebundenMeist im Repo
DetailtiefeJe CommitJe Pull RequestJe 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 geeignetDafür ungeeignet
Bekannte SchwachstellenmusterFachliche Geschäftslogik
Versehentlich eingecheckte GeheimnisseHausinterne Schwellenwerte
Nicht behandelte FehlerfälleArchitektur über das Repo hinaus
Offensichtliche Performance-FallenFehlende Anforderungen
Tote Codepfade, RechenfehlerStil 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.

KriteriumLokalRemote
NachweisbarkeitSchwachStark
Arbeitsplatz blockiertJaNein
Fehler früh und privatJaNein
Wahl des ModellsFreiOft vorgegeben
Schnelle RückmeldungJaErst 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 DateiJe Modell eine Datei
Eine Quelle, ein PflegeaufwandMehrere Dateien pflegen
Modellspezifisches bleibt ungenutztBesondere Fähigkeiten nutzbar
Passend bei vielen WerkzeugenPassend bei ein bis zwei Modellen
Einmalige Konfiguration nötigNamenskonvention 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

GruppeBeispiele
IntegritätAnlegen, Ändern und Löschen einschränken
HistorieLineare Historie, signierte Commits verlangen
PrüfungenAbhängigkeits- und Sicherheitsscans, Stil, Abdeckung
DateibezugBestimmte 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.

MerkmalZu weitZu engAusgewogen
LaufzeitUnbegrenztEine Woche90 Tage
UmfangAlle ReposEin RepoProjekt und Bibliotheken
Inhalte und PRsSchreiben, überallNur lesenSchreiben im Projekt
VerwaltungSchreibenKein ZugriffLesen, 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-verify hebelt 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

Zum Seminar Git & KI-Agenten in der Praxis