GrundlagenVibe-Coding / Agentic EngineeringKapitel 04 von 13

Ver­sio­nie­rung

Gleiches Kapitel, drei Tiefen. Die Wahl gilt überall und bleibt gespeichert.

Tiefe 1: Überblick · Lesezeit 9 Min. · Stand

Ein Agent arbeitet schnell und in der Breite. Ein Auftrag von zwei Sätzen kann zwanzig Dateien anfassen, davon fünfzehn richtig. Dass er Fehler macht, ist gesetzt. Was sich beeinflussen lässt, ist, was ein einzelner kostet.

Genau diese Frage beantwortet die Ver­si­ons­ver­wal­tung, und deshalb steht sie in diesem Kurs so weit vorn.

Git in einem Absatz

Git hält Stände fest. Ein Commit ist ein Standbild der Dateien, die in Git liegen, mit Zeitpunkt, Urheber und einem Satz dazu, warum er entstanden ist. Aus einer Reihe solcher Standbilder ergibt sich zweierlei: Sie können zu jedem dieser Stände zurück, und Sie können sehen, was sich zwischen zweien davon geändert hat.

Die Einschränkung steckt im ersten Satz. Was Git nicht verwaltet, steht in keinem Commit: die Zugangsdaten in der lokalen Umgebungsdatei, die installierten Abhängigkeiten, die Datenbank daneben. Der Rückweg führt zu einem Dateistand, er stellt kein Projekt wieder her.

Für die Arbeit mit einem Agenten sind beide Richtungen zentral. Der Rückweg macht einen Fehlversuch billig. Der Vergleich beantwortet die Frage, was da eigentlich gerade passiert ist, und zwar am Ergebnis statt am Bericht des Agenten.

Der Agent bucht selbst ein

Bei Aider, einem der frühen Werkzeuge dieser Bauform, ist das die Voreinstellung. Jedes Mal, wenn Aider eine Datei bearbeitet, bucht es die Änderung laut seiner Git-Doku (externe Seite, aider.chat) mit einer beschreibenden Commit-Nachricht ein.

Bemerkenswert ist der Schritt davor. Findet Aider beim Start bereits geänderte Dateien vor, kommen die zuerst in einen eigenen Commit, ebenfalls mit beschreibender Nachricht, so dieselbe Seite (externe Seite, aider.chat).

Der Grund dafür ist eine Trennlinie, die Sie sich merken sollten: Ihre Arbeit und die des Agenten sollen in verschiedenen Commits liegen. Sonst lässt sich hinterher nicht mehr auseinanderhalten, wer was getan hat, und der Rückweg nimmt Fremdes mit.

Eine zweite Voreinstellung derselben Seite zeigt in die andere Richtung, und sie ist leicht zu überlesen: Von Haus aus überspringt Aider die Pre-Commit-Hooks (externe Seite, aider.chat).

Wie das geschieht, steht im selben Satz: Aider hängt an seinen Commit den Schalter --no-verify. Prüfungen, die vor jedem Commit laufen sollen, laufen hier also nicht. Wer sich darauf verlässt, dass ein Formatierer oder eine Suche nach Zugangsdaten den Commit aufhält, muss das eigens einschalten. Was solche Prüfungen leisten und warum sie den Rang einer Schranke haben, steht in Kapitel 12.

Andere Werkzeuge halten sich zurück und committen erst, wenn man sie darum bittet. Beide Wege sind vertretbar. Stundenlang ohne Commit zu arbeiten, ist es nicht.

Der eingebaute Rückweg

Die meisten Agenten haben inzwischen eine eigene Rücknahme, unabhängig von Git. Bei Claude Code heißt sie Checkpoint und entsteht ohne Zutun: Laut Checkpoint-Doku (externe Seite, code.claude.com) legt jeder Prompt, mit dem Sie einen Zug beginnen, einen neuen Checkpoint an.

Das ist bequem und im Alltag oft genau richtig: Ein Auftrag ging daneben, zwei Tastendrücke später ist der Stand von vorhin wieder da, samt Gesprächsverlauf.

Wichtiger ist allerdings, was diese Rücknahme nicht erfasst. Die Dokumentation nennt fünf Grenzen. Vier davon lassen Änderungen durchfallen, und jede ist ein Alltagsfall.

Erstens verfolgt der Checkpoint keine Datei, die allein Bash-Befehle (externe Seite, code.claude.com) geändert haben.

Ein verschobenes Verzeichnis, ein Skript, das Dateien erzeugt, ein Paketmanager: nicht erfasst. Zurück holt das Zurückspulen einen Bash-Befehl nur an einer Datei, die Claude im Gespräch vorher mit seinen eigenen Werkzeugen bearbeitet hat.

Zweitens verfolgt er nur Dateien, die innerhalb der laufenden Sitzung (externe Seite, code.claude.com) bearbeitet wurden.

Was Sie selbst im Editor geändert haben, ist in der Regel nicht dabei, ebenso wenig, was eine zweite Sitzung nebenan getan hat. Erfasst wird so etwas nur, wenn es eine Datei trifft, die auch die laufende Sitzung bearbeitet.

Drittens die Subagenten. Was einer von ihnen ändert, kommt in aller Regel nur an Dateien zurück, die Claude im Gespräch schon selbst bearbeitet hatte. Für alle anderen sagt die Dokumentation, was stattdessen hilft: Solche Änderungen nimmt man mit einer Ver­si­ons­ver­wal­tung wie Git zurück (externe Seite, code.claude.com). Eine Ausnahme steht daneben, sie betrifft eine Bauart, die im Vordergrund und innerhalb Ihres eigenen Zuges arbeitet.

Und viertens die verknüpften Pfade: Claude Code überspringt jeden verfolgten Pfad, der ein symbolischer Link oder ein Hardlink (externe Seite, code.claude.com) ist.

Das trifft zwei Dinge, die man sich selten aussucht: eine Kon­fi­gu­ra­ti­ons­datei, die ein Ver­wal­tungs­werk­zeug ins Projekt hineinverlinkt, und Abhängigkeiten, die ein Paketmanager als Hardlink ablegt. Die Rücknahme überspringt sie und sagt hinterher, wie viele es waren.

Die fünfte Grenze betrifft den Takt. Eine Nachricht, die Sie schreiben, während der Agent noch arbeitet, geht oft in den laufenden Zug ein und bekommt dann keinen eigenen Checkpoint (externe Seite, code.claude.com). Zurück geht es in diesem Fall nur an den Anfang des ganzen Zuges.

Die Checkpoint-Linie hat Lücken genau dort, wo etwas außerhalb der Sitzung geschah. Zwei Zeitachsen übereinander. Sie zeigen, warum eine Rücknahme mitten in einer Sitzung ins Leere greifen kann. EINE SITZUNG VON LINKS NACH RECHTS Checkpoints LUECKE Umbenennen über die Shell Commits JEDER EINGEBUCHTE STAND BLEIBT ERREICHBAR hier trotzdem drin
Der Checkpoint fängt die Änderungen der eigenen Sitzung. Was allein über die Kommandozeile, von nebenan, von einem Subagenten oder über einen verknüpften Pfad kommt, fällt durch. Darunter liegt Git.

eigene Darstellung, Stand 07.08.2026

Der Hersteller sagt das selbst und in derselben Reihenfolge: Für eine dauerhafte Ver­si­ons­ge­schichte und für die Zusammenarbeit rät die Checkpoint-Doku (externe Seite, code.claude.com), weiter eine Ver­si­ons­ver­wal­tung wie Git zu benutzen, für Commits, Branches und die langfristige Historie.

Klein und oft

Aus dem Tempo folgt der Takt. Wer nach drei Stunden Arbeit einen einzigen Commit macht, hat einen Stand, in dem sieben Dinge gleichzeitig stecken. Ist eines davon falsch, gibt es keinen Rückweg, der nur dieses eine betrifft.

Die brauchbare Gewohnheit: nach jedem abgeschlossenen Gedanken committen. Ein Commit sollte eine Sache enthalten und in einem Satz beschreibbar sein. Braucht der Satz ein „und“, um zwei verschiedene Absichten zu verbinden, waren es zwei Commits. Eine Änderung und der Test dazu sind eine Absicht.

Wer testgetrieben arbeitet, dreht die Reihenfolge um und bucht den Test zuerst ein. Der Commit davor wird damit zum Nachweis, dass die Erwartung vor dem Code dastand, siehe Erst der rote Test.

Das kostet wenig und zahlt sich beim ersten Fehlversuch aus.

Die Nachricht ist auch für die Maschine

Ein Detail, das man leicht übersieht: Der Branch, die nicht committeten Änderungen und die jüngsten Commits gehören zu dem, worauf ein Werkzeug wie Claude Code von sich aus zugreift. Der Hersteller führt es unter den Dingen auf, an die es in einem Pro­jekt­ver­zeichnis herankommt: Ihr Git-Stand (externe Seite, code.claude.com), also der aktuelle Branch, die nicht committeten Änderungen und die jüngste Commit-Historie.

Eine Commit-Nachricht ist damit doppelt adressiert. Sie erklärt einem Menschen in sechs Monaten, warum eine Änderung entstand, und sie erklärt es einem Agenten in der nächsten Sitzung. Was das für das Gedächtnis eines Projekts bedeutet, steht in Kapitel 05.

Quellen

9 Einträgealle erreichbar

Erreichbarkeit automatisch geprüft

  • Dokumentationerreichbar

    Aider, Git integration (externe Seite, aider.chat)

    aider.chatgeprüft 25.10.2026

    Die Dokumentation zum Git-Verhalten von Aider, einem der frühen Agenten dieser Bauform. Sie belegt, dass der Commit dort zur Voreinstellung gehört: Jede Änderung wird sofort mit einer beschreibenden Nachricht committet, und vorgefundene fremde Änderungen kommen vorher in einen eigenen Commit, damit beides getrennt bleibt. Das Abschalten ist möglich und wird ausdrücklich nicht empfohlen. Auf derselben Seite steht eine zweite Voreinstellung, die in die andere Richtung zeigt: Die Prüfungen vor dem Commit werden übersprungen, solange man sie nicht eigens einschaltet. Der Wortlaut nennt dafür den Schalter, dessen doppelter Bindestrich im Zitat nicht wiedergegeben werden kann, weil der Markdown-Prozessor daraus einen Geviertstrich macht. Ihre Commit-Nachrichten folgen in der Voreinstellung den Conventional Commits.

  • Dokumentationerreichbar

    Anthropic, Checkpointing (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation zum tooleigenen Rückweg: Vor jeder Eingabe wird der Stand der Dateien festgehalten, über ein Menü lässt sich zu jedem dieser Punkte zurück. Sie ist zugleich die Quelle für die Grenzen davon, und die sind der eigentliche Grund, warum daneben eine Versionsverwaltung stehen muss. Am 09.10.2026 stehen dort fünf Grenzen. Was allein ein Shell-Befehl ändert, wird nicht erfasst; seit einer Überarbeitung, gesehen am 23.10.2026, nimmt das Zurückspulen Shell-Änderungen an einer Datei mit, die Claude vorher selbst bearbeitet hat. Änderungen von außen oder aus einer zweiten Sitzung fehlen in der Regel, außer sie treffen eine Datei der laufenden Sitzung. Wiederhergestellt wird kein Pfad, der ein Symlink oder Hardlink ist. Bei Subagenten kommt es auf die Bauart an. Und eine Nachricht, die während eines laufenden Zuges eingeht, bekommt keinen eigenen Checkpoint. Gehalten werden die Dateistände der letzten 100 Checkpoints einer Sitzung. Der Abschnitt "Not a replacement for version control" sagt es selbst.

  • Dokumentationerreichbar

    Anthropic, How Claude Code works (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Übersichtsseite des Herstellers zu der Frage, worauf das Werkzeug in einem Projektverzeichnis überhaupt zugreift. Sie zählt sechs Dinge auf, darunter den Git-Zustand mit Branch, nicht committeten Änderungen und den jüngsten Commits. Dass der Git-Zustand auch in den Kontext geladen wird, belegt die Seite zum Kontextfenster: Branch, Status und jüngste Commits stehen dort als eigener Block in der Startbelegung, und nach dem Verdichten liest Claude Code ihn frisch.

  • Dokumentationerreichbar

    Anthropic, Run parallel sessions with worktrees (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation zu getrennten Worktrees: ein zweites Arbeitsverzeichnis mit eigenen Dateien und eigenem Branch auf derselben Historie. Sie belegt die Antwort auf die Frage, wie zwei Agenten gleichzeitig an einem Projekt arbeiten können, ohne sich in die Quere zu kommen, und nennt die Kanten: Ein frischer Auscheckvorgang hat die nicht committeten Dateien nicht dabei, und aufgeräumt wird nur, was keine Arbeit mehr enthält. Für die Mitnahmeliste steht das Beispiel des Herstellers selbst da, und es besteht aus zwei Umgebungsdateien und einer Datei mit Zugangsdaten. Ein neuer Worktree zweigt in der Voreinstellung vom Standardzweig auf dem Server ab, ein Schalter stellt ihn auf den lokalen Stand um.

  • Dokumentationerreichbar

    Anthropic, Orchestrate teams of Claude Code sessions (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerdokumentation zu mehreren Agenten, die als Team zusammenarbeiten. Anders als bei getrennten Worktrees bekommt hier jeder Beteiligte kein eigenes Verzeichnis, weshalb die Seite die Bedingung ausspricht, unter der geteiltes Arbeiten aufgeht: Die Arbeit wird so aufgeteilt, dass jeder andere Dateien besitzt. Sie nennt daneben eine Größenordnung, drei bis fünf Beteiligte, und den Grund dafür, dass die Kosten mit jedem weiteren linear steigen und der Abstimmungsaufwand mit.

  • Dokumentationerreichbar

    Anthropic, Use Claude Code Desktop (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Referenz zum Reiter Code der Desktop-App: lokale, Cloud-, SSH- und WSL-Sitzungen, der Vergleich mit der Kommandozeile und die Funktionen, die nur dort laufen. Desktop und Kommandozeile teilen Einstellungen und CLAUDE.md, die Desktop-App arbeitet nur interaktiv.

  • Dokumentationerreichbar

    Git, git-history (externe Seite, git-scm.com)

    git-scm.comgeprüft 25.10.2026

    Die Handbuchseite zu einem Git-Befehl, dessen Zweck das Umschreiben bereits committeter Stände ist. Am 09.10.2026 nennt sie vier Unterbefehle: einen Commit entfernen, Änderungen nachträglich in einen älteren Commit hineinlegen, dessen Nachricht ersetzen, ihn in zwei zerlegen. Git-Hooks führt der Befehl dabei nicht aus. Er führt in seiner Überschrift das Wort EXPERIMENTAL und ist neu, die Seite nennt als Fassungen 2.54.0 vom 20.04.2026, 2.55.0 vom 29.06.2026 und 2.56.0 vom 28.09.2026. Er belegt keine neue Fähigkeit, denn umschreiben ließ sich eine Historie immer schon; er belegt, dass der Vorgang gewöhnlich genug ist für einen eigenen Befehl.

  • Dokumentationerreichbar

    Anthropic, Explore the context window (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Herstellerseite zum Kontextfenster, aufgebaut als begehbare Simulation einer Sitzung. Sie belegt, dass das Verdichten das Gespräch durch eine strukturierte Zusammenfassung ersetzt (Ereignis „/compact“ der Simulation). Ebenfalls von dort die Ausnahme, dass die Liste der verfügbaren Skills als einziger Teil des Startinhalts nach dem Verdichten nicht erneut eingesetzt wird; erhalten bleiben nur die tatsächlich aufgerufenen. Sie belegt außerdem, dass die Startfüllung ohne Zutun geschieht: CLAUDE.md, automatisches Gedächtnis, die Namen der MCP-Werkzeuge und die Beschreibungen der Skills laden in den Kontext, bevor man etwas tippt. Die Umgebungsangaben stehen in der begehbaren Simulation als eigener Posten „Environment info“ mit 280 Token und der Kennzeichnung auto: Arbeitsordner, Plattform, Shell, Version des Betriebssystems und ob ein Git-Repository vorliegt; Branch, Status und letzte Commits laden als eigener Block. Nach dem Verdichten liest das Werkzeug diesen Block frisch, dazu bis zu fünf zuletzt geänderte Dateien der Sitzung (Tabelle „What survives compaction“, Stand 09.10.2026). Dieser Text liegt in den Daten der Simulation und wird erst beim Anklicken des Punktes sichtbar, deshalb ist er nicht als Zitat hinterlegt.

  • Dokumentationerreichbar

    Claude Code, Settings reference (externe Seite, code.claude.com)

    code.claude.comgeprüft 25.10.2026

    Die Referenz aller Einstellungen von Claude Code. Der Eintrag includeGitInstructions beschreibt den Git-Kontext, den das Werkzeug von sich aus mitgibt: eingebaute Anweisungen für Commits und Pull Requests sowie einen Schnappschuss mit Branch, Hauptzweig, Status und jüngsten Commits, gelesen beim Start eines Gesprächs. Der Schalter nimmt beides heraus, in Cloud-Sitzungen fehlt der Schnappschuss immer. Abgerufen am 09.10.2026.

↑↓ auswählenEnter öffnenDie Suche läuft im Browser. Nichts wird übertragen.