Zum Inhalt springen
↑↓Navigieren ↵Öffnen escSchließen

Worktree-Sitzungen

Eine Worktree-Sitzung läuft in einer eigenen ausgecheckten Kopie deines Repos auf einem eigenen Branch (einem Git-Worktree). So kommen sich parallele Sitzungen nicht in die Quere — die eine kann refaktorieren, während eine andere einen Fehler behebt, ohne ständiges Hin- und Herwechseln.

Eine erstellen

  1. Öffne den Dialog für einen neuen Worktree: Wähle Neuer Worktree… im Branch-Menü über dem Eingabefeld, wenn du eine neue Sitzung startest, oder nutze die Worktree-Schaltfläche in einer Projektzeile der Seitenleiste.
  2. Wähle unter Start from eine Option:
    • new branch — benenne den Branch
    • existing branch — checke einen bereits vorhandenen Branch aus
    • PR or issue — wähle einen Eintrag aus GitHub, GitLab, Gitea, Forgejo, Gerrit, Linear oder einer Erweiterung; der Branch wird danach benannt (ein PR checkt seinen eigenen Branch aus, eine Gerrit-Änderung ihr neuestes Patchset auf change-<number>), und der Eintrag wird an deine erste Nachricht angehängt
  3. Prüfe Based on (der Branch, von dem ein neuer Branch ausgeht, standardmäßig der Standard-Branch des Remotes, etwa origin/main) und Folder name; ändere sie nur, wenn es nötig ist.
  4. Erstelle ihn. Hat das Projekt Setup-Befehle, laufen sie direkt danach.

OpenChamber legt den Branch an, richtet den Ordner ein und öffnet dort eine neue Sitzung, bereit für deine erste Nachricht. Du kannst auch direkt von einer todo oder einem Issue oder Pull Request aus damit beginnen.

Ohne Rückfragen geht es mit Schneller Worktree im selben Branch-Menü: OpenChamber gibt dem Branch einen vorläufigen Namen und richtet die neue Sitzung darauf aus. Sobald der Agent der Aufgabe einen Namen gibt, benennt er auch den Branch danach um, etwa in fix/login-timeout, solange der Branch noch nicht gepusht wurde.

In der Seitenleiste

Ein Worktree ist eine Zeile in der Seitenleiste, darunter alle Sitzungen darin. Unter seinem Projekt steht er zwischen den anderen Sitzungen des Projekts nach seiner letzten Aktivität. Ein Worktree, in dem du gerade gearbeitet hast, steht also weit oben. Die Zeile zeigt den Namen der Aufgabe, sobald der Agent sie benannt hat (bis dahin den Titel der Sitzung, in der du dort zuletzt gearbeitet hast), den Pull Request oder das Issue, dem er folgt, als farbige Markierung, und ob dort eine Sitzung läuft oder Neuigkeiten für dich hat. Ein Worktree, der für einen Pull Request oder ein Issue angelegt wurde, trägt zuerst dessen Titel, bis der Agent einen kürzeren Namen wählt. Fahre mit der Maus darüber, um den Branch zu sehen. Klicke darauf, um die Sitzung zu öffnen, in der du dort zuletzt gearbeitet hast; um die Liste aufzuklappen, fahre über das Branch-Symbol links davon und klicke auf den Pfeil, der an seiner Stelle erscheint. Sein Menü benennt die Aufgabe um, legt den Worktree in einen Ordner des Projekts, archiviert ihn oder löscht ihn. Auf dem Handy tippst du auf den Pfeil in der Zeile, um die Liste aufzuklappen, und wischst die Zeile zur Seite, um sie als erledigt zu markieren, die Aufgabe umzubenennen, den Worktree zu archivieren oder ihn zu löschen. Wie Arbeiten in den Bereich In Arbeit kommen und ihn verlassen, steht unter Sitzungen in Arbeit.

Projekte, die auf einem Ordner des Repositorys geöffnet sind

Öffnest du ein Projekt auf einem Ordner innerhalb eines Repositorys, etwa repo/ai, öffnen sich neue Worktrees ebenfalls dort. Eine Sitzung in einem neuen Worktree startet im selben Ordner des Checkouts, sodass OpenCode die Konfiguration findet, die dort liegt. Ein Projekt, das auf dem Repository-Stammverzeichnis geöffnet ist, startet wie bisher im Worktree-Stammverzeichnis. Hat ein Branch diesen Ordner nicht, startet die Sitzung im Worktree-Stammverzeichnis, und OpenChamber weist darauf hin.

Die Arbeit zurückbringen

Wenn die Arbeit gut ist, verwende Integrate in der Git-Ansicht, um die Commits des Worktrees auf einen anderen Branch (etwa main) zu übertragen. Wenn ein Konflikt auftritt, kannst du den Konflikt dem Agenten zur Lösung geben.

Aufräumen

Wenn die Aufgabe fertig ist, wähle Worktree archivieren im Menü der Zeile, oder halte Shift gedrückt und klicke auf die Archivieren-Schaltfläche, die in der Zeile an die Stelle der Schaltfläche für eine neue Sitzung tritt. OpenChamber archiviert ihn: Der Ordner verschwindet, und seine Sitzungen, seine nicht committeten Änderungen und sein Branch warten auf der Seite Archiv. Läuft dort noch eine Sitzung, bleibt der Worktree.

Markierst du die Zeile als erledigt, verlässt sie nur den Bereich In Arbeit. Um einen Worktree jedes Mal zu archivieren, wenn du ihn als erledigt markierst, oder sobald sein PR gemergt ist, schalte das unter Einstellungen → Sitzungen → Abgeschlossene Worktrees ein.

Auf der Seite Archiv stehen archivierte Worktrees unter ihrem Projekt. Wiederherstellen holt einen mit seinem Branch zurück, führt die Setup-Befehle des Projekts aus und bringt seine Änderungen und Sitzungen zurück; das Wiederherstellen einer seiner Sitzungen macht dasselbe. Dateien, die git ignoriert, etwa node_modules oder .env, werden nicht aufbewahrt, also bringen die Setup-Befehle sie zurück. Auch die Seite Worktrees des Projekts listet archivierte Worktrees.

Um einen Worktree endgültig loszuwerden, lösche ihn über sein Menü oder lösche einen archivierten auf der Seite Archiv. Beim Löschen über das Menü entscheidest du, ob auch der Branch gelöscht werden soll — lokal und, falls vorhanden, remote.

Wenn etwas seltsam aussieht

Ein Worktree braucht möglicherweise Aufmerksamkeit, wenn sein Ordner fehlt, sein Branch in einem detached-Zustand ist oder ein Merge oder Rebase noch nicht abgeschlossen wurde. OpenChamber markiert das, damit du es beheben kannst — siehe Worktrees & Git.

Verwandt

  • Multi-run — viele Worktree-Sitzungen gleichzeitig starten
  • Git-Workflows — von innen in OpenChamber committen und integrieren