Tutorial 15: Git-Worktrees — Parallele Agents
Tutorial 15: Git-Worktrees — Parallele Agents — leicht verständlicher Leitfaden auf Basis der offiziellen Dokumentation
Dies ist Teil der offiziellen Hermes-Agent-Tutorialserie. Alle Tutorials ansehen
Stell dir vor, du hast eine Küche, aber zwei Köche. Wenn beide an derselben Arbeitsfläche kochen, stoßen sie mit den Ellbogen aneinander, verschütten Mehl und ruinieren sich gegenseitig die Gerichte. Git-Worktrees geben jedem Koch seine eigene Arbeitsfläche – dieselbe Küche, aber getrennte Arbeitsbereiche. Genau das macht diese Funktion für deine KI-Agenten.
Warum überhaupt? Das Problem mit einem einzigen Checkout
Hermes Agent behandelt den Ordner, in dem du es ausführst, als Projektstamm. Wenn du zwei Agenten im selben Ordner startest, teilen sie sich jede Datei. Das bedeutet:
- Agent A könnte eine Datei löschen, die Agent B gerade bearbeitet.
- Du kannst nicht erkennen, welche Änderungen von welchem Experiment stammen.
- Rollbacks werden chaotisch – das Rückgängigmachen des einen Agenten könnte die Arbeit des anderen zunichtemachen.
Worktrees lösen das, indem sie jedem Agenten Folgendes geben:
- Einen eigenen Branch (damit sich Änderungen nicht überschneiden)
- Einen eigenen Arbeitsordner (damit Dateien nicht kollidieren)
- Einen eigenen Checkpoint-Verlauf (damit
/rollbacknur diesen Agenten betrifft)
Schritt 1: Einen Worktree erstellen (Der grundlegende Befehl)
Führe in deinem Haupt-Repository (dem mit .git/ darin) Folgendes aus:
git worktree add ../my-agent-folder -b my-feature-branch
Lass uns das aufschlüsseln:
../my-agent-folder– wo der neue Ordner leben wird (außerhalb deines Haupt-Repos)-b my-feature-branch– erstellt einen neuen Branch für diesen Agenten
Jetzt hast du eine frische, isolierte Kopie deines Projekts.
Schritt 2: Hermes auf den Worktree ausrichten
Du kannst den Worktree auf zwei Arten nutzen:
Option A: CLI (am einfachsten)
Wechsle einfach per cd in den Worktree und führe Hermes dort aus:
cd ../my-agent-folder
hermes chat
Option B: Messaging-Gateways (wie Slack oder Discord)
Wenn du ein Gateway verwendest, bearbeite ~/.hermes/config.yaml und setze terminal.cwd auf den Worktree-Pfad:
terminal:
cwd: /path/to/my-agent-folder
Jetzt arbeitet jede Nachricht, die dieser Agent empfängt, innerhalb dieses isolierten Ordners.
Schritt 3: Mehrere Agenten parallel ausführen
Erstelle so viele Worktrees, wie du benötigst:
git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2
Starte dann in jedem Ordner eine Hermes-Sitzung. Sie werden sich nie gegenseitig in die Dateien pfuschen, und jeder hat seinen eigenen Branch, auf den er committen kann.
Schritt 4: Aufräumen, wenn du fertig bist
Wenn ein Experiment abgeschlossen ist, entferne den Worktree:
git worktree remove ../agent-experiment-1
git branch -d exp-1
Der erste Befehl löscht den Ordner; der zweite löscht den Branch. Dein Haupt-Repository bleibt sauber.
Wichtige Punkte zum Merken
- Worktrees sind günstig – sie kopieren nicht das gesamte Repo, sondern nur die Dateien, die du brauchst.
- Jeder Agent bekommt seinen eigenen
/rollback-Verlauf – keine Cross-Agent-Undo-Katastrophen mehr. - Nutze Branches mit Bedacht – benenne sie klar (z. B.
refactor-login,fix-bug-42), damit du weißt, was jeder Agent getan hat.
Zusammenfassung
Git-Worktrees ermöglichen es dir, mehrere Hermes-Agenten am selben Projekt auszuführen, ohne dass sie sich gegenseitig auf die Füße treten. Erstelle einen Worktree pro Agent, richte Hermes darauf aus, und fertig. Es ist, als ob jeder Koch sein eigenes Schneidebrett bekommt – dieselbe Küche, null Kollisionen.
Als Nächstes: In Tutorial 16 werden wir Hermes mit Docker bereitstellen – einen selbstheilenden, immer verfügbaren Assistenten.
📖 Offizielle Dokumentation
この記事は Hermes Agent のOffizielle Dokumentationに基づいています:Offizielle Dokumentation › user-guide/git-worktrees