Git-Änderungen
Git changes (Git-Änderungen) zeigt, was im Git-Repository des Arbeitsordners der Konversation anders ist: den Branch, jede geänderte Datei und zu jeder einen Diff. Nutze es, um die Arbeit eines Agents durchzusehen, bevor du ihn um einen Commit bittest. Es ist ein Viewer. Das Einzige, was etwas ändert, ist der ⬇ Pull-Button.
Öffnen #
Öffne das ⋯-Menü der Konversation und wähl 🌿 Git changes. Ein Fenster öffnet sich
über der Konversation. Es liest den Ordner auf dem Relay-Host, sodass du von
jedem Browser aus dasselbe siehst.
Der Eintrag steht im Menü jeder offenen Konversation. Er ist ausgeblendet, wenn keine Konversation offen ist, und in der geteilten Nur-Lese-Ansicht.
Welches Repository #
Das Fenster führt git im Arbeitsordner der Konversation aus, dem, den du im Dialog New chat gewählt oder mit 🗂️ Change CWD (Arbeitsordner ändern) gesetzt hast. Git findet das Repository von dort aus, wie in einem Terminal: Ein Ordner innerhalb eines Repositorys zeigt dieses Repository.
Findet git kein Repository, sagt der Header Not a git repository und die
Liste The current workspace root is not a git repository. Der ⬇ Pull-Button
ist deaktiviert. Ein Ordner, der nur mehrere Repositorys nebeneinander enthält,
ist selbst kein Repository und bekommt deshalb ebenfalls diese Meldung. Starte
eine Konversation innerhalb des Repositorys, das du prüfen willst.
Arbeitsordner unterhalb der Repository-Spitze
Ist der Arbeitsordner ein Unterordner eines Repositorys, zeigt die Liste
trotzdem die Änderungen des ganzen Repositorys, nicht nur die dieses
Unterordners. Eine Datei daraus zu öffnen, funktioniert nicht: Jeder Diff
lautet No textual changes detected for this file. Starte die Konversation im
obersten Ordner des Repositorys, um funktionierende Diffs zu bekommen.
Ein Repository ohne Commits zeigt seinen Branch-Namen, und seine gestagten
Dateien werden gelistet. Ein Diff einer gestagten Datei scheitert dort mit der
git-Meldung fatal: bad revision 'HEAD'. Diffs von nicht verfolgten Dateien
funktionieren.
Der Header #
Der Header zeigt den Branch und daneben, wie weit er von seinem Upstream entfernt ist:
| Header | Bedeutung |
|---|---|
main |
Der Branch, gleichauf mit seinem Upstream oder ohne einen. |
main ↑2 |
Zwei Commits vor dem Upstream: noch nicht gepusht. |
main ↓3 |
Drei Commits hinter dem Upstream. |
main ↑2 ↓3 |
Beides. |
detached HEAD |
Ein Commit ist ausgecheckt, kein Branch. |
Unter dem Branch zeigt eine zweite Zeile den Upstream und die Zahl der
geänderten Dateien, etwa origin/ (1 changed file bei
einer). Ein Branch ohne Upstream zeigt keine Pfeile und keinen Upstream-Namen,
nur die Zahl. Die Zahlen sind die, die git zuletzt kannte: OAR macht kein
Fetch, also ändert sich ↓ erst nach einem Fetch oder Pull.
Pull #
⬇ Pull führt im Ordner ein einfaches git pull aus, ohne Optionen. Sein
Tooltip sagt „Pull from upstream“, aber OAR nennt weder Remote noch Branch. Ob
es mergt, rebast oder nur vorspult, bestimmt deine git-Konfiguration
(pull., pull.). Der Button wird immer angeboten, wenn der Ordner ein
Repository ist, auch wenn es nichts zu pullen gibt, und ist deaktiviert,
solange das Fenster lädt oder ein Pull läuft (der Button lautet dann
Pulling…). Ein Pull kann bis zu 120 Sekunden dauern.
Ist er fertig, sagt eine Zeile unter dem Header Pull: und die letzte Zeile
der git-Ausgabe (zum Beispiel Pull: Already up to date.) oder Pull complete., wenn git nichts ausgegeben hat. Lehnt git ab, ist die
Zeile rot und lautet Pull failed: gefolgt von der eigenen Meldung von git. Das
siehst du bei einem Konflikt, bei lokalen Änderungen, die ein Pull
überschreiben würde, oder bei einem Branch ohne Upstream. OAR macht kein Stash,
kein Reset und löst nichts auf. Bitte den Agent, das zu klären. Nach jedem Pull
wird die Liste neu geladen.
Die Liste #
Jede geänderte Datei ist eine Zeile: gestagte, nicht gestagte und nicht verfolgte Dateien zusammen, nach Pfad sortiert. Eine Zeile zeigt:
- einen Buchstaben als Badge für den Zustand und den Dateinamen mit seinem Ordner darunter;
- bei einer umbenannten Datei den alten Pfad nach einem
←; - gelöschte Dateien mit durchgestrichenem Namen.
Ein neuer Ordner, den git noch nicht verfolgt, ist eine Zeile für den ganzen
Ordner, nicht eine pro Datei darin. Sein Name ist leer, und der Pfad des Ordners
steht darunter. Öffnest du ihn, zeigt er No textual changes detected for this file.
| Badge | Bedeutung |
|---|---|
| M | Geändert |
| A | Hinzugefügt |
| D | Gelöscht |
| R | Umbenannt |
| C | Kopiert |
| T | Typ geändert |
| U | Nicht verfolgt: eine neue Datei, die git noch nicht verfolgt |
Eine Datei, die nach dem Stagen bearbeitet wurde, erscheint einmal, mit dem Zustand der Arbeitskopie. Die Liste unterscheidet gestagte nicht von nicht gestagten Änderungen. Fahr mit der Maus über eine Zeile, um den Zustand in Worten und den vollen Pfad zu sehen.
Dateien mit Konflikt
Eine Datei mit einem Merge-Konflikt hat kein eigenes Badge. Eine Datei, die
beide Seiten geändert haben (UU in git), zeigt U und das Wort
Untracked (Nicht verfolgt), obwohl sie verfolgt wird. Eine Datei, die beide
Seiten hinzugefügt haben, zeigt A, eine auf beiden Seiten gelöschte D,
und eine auf einer Seite gelöschte D (durchgestrichen) oder U, je nach
Seite. Ihr Diff öffnet sich trotzdem und vergleicht sie mit dem letzten Commit.
Nutze git status in einem Terminal oder frag den Agent, um den Konflikt zu
sehen.
Ein Repository, in dem es nichts zu zeigen gibt, sagt
Working tree clean — no changes.
Aktualisieren #
Die Liste ist nicht live. Sie wird gelesen, wenn du das Fenster öffnest, wenn du ↻ (Aktualisieren) drückst, und nach einem Pull. Während ein Agent arbeitet, drück ↻, um seine neuesten Änderungen zu sehen. Das Fenster zu schließen und wieder zu öffnen, bewirkt dasselbe.
Der Diff-Viewer #
Klick eine Zeile an, um den Diff dieser Datei in einem zweiten Fenster über der
Liste zu öffnen. Der Diff vergleicht die Datei mit dem letzten Commit, sodass
gestagte und nicht gestagte Änderungen zusammen erscheinen. Der Titel ist der
Pfad der Datei; darunter stehen der Zustand und die Zahlen, zum Beispiel
Modified · +12 −3.
| Button | Zeigt |
|---|---|
| Changes (Änderungen) | Hinzugefügte und entfernte Zeilen mit je drei unveränderten Zeilen drumherum. Längere unveränderte Abschnitte klappen zu ⋯ 40 unchanged lines zusammen. Das ist der Standard. |
| Full file (Ganze Datei) | Jede Zeile der Datei, mit markierten Änderungen. |
Beide Ansichten kommen aus einem Diff, also wechselst du ohne Verzögerung. Die Wahl gilt für die nächsten Dateien, die du öffnest, bis du die Seite neu lädst. Die Zeilen tragen die alten und neuen Zeilennummern; hinzugefügte Zeilen sind grün, entfernte rot.
| Datei | Was du siehst |
|---|---|
| Neu (nicht verfolgt) | Jede Zeile als hinzugefügt. |
| Gelöscht | Jede Zeile als entfernt. |
| Umbenannt | Der neue Pfad verglichen mit dem letzten Commit: jede Zeile als hinzugefügt, auch wenn sich der Inhalt nicht geändert hat. |
| Binär | Binary file — no text diff available., nur mit dem Zustand und ohne Zahlen. |
| Keine Textänderung, etwa eine Änderung der Dateirechte | No textual changes detected for this file. |
| Sehr groß | Derselbe Diff, vollständig. OAR setzt keine Größengrenze, aber das Lesen des Diffs hat 15 Sekunden und eine Ausgabegrenze von 32 MB. Eine Datei, die sie überschreitet, zeigt statt des Diffs eine Fehlermeldung. |
Lange Zeilen werden nicht umbrochen. Scroll seitwärts, um sie zu lesen.
Kann git den Status oder einen Diff nicht lesen, erscheint die Meldung in Rot über der Liste oder anstelle des Diffs.
Schließ den Diff mit ×, Esc oder einem Klick daneben. Die Liste ist dahinter noch offen. ×, Esc oder ein Klick daneben schließen dann die Liste.
Was es nicht kann #
Hier gibt es kein Stagen, Committen, Verwerfen oder Pushen und keine Möglichkeit, eine Datei zu bearbeiten. Zum Committen, Rückgängigmachen einer Änderung oder Pushen bitte den Agent darum, in der Konversation. Ein Commit, den der Agent bei Claude macht, trägt die Zuschreibungszeile, die du gewählt hast; siehe Commit-Zuschreibung. Neu in 0.9.17 Bei DeepSeek trägt er die Zeile, die unter Commit attribution (Commit-Zuschreibung) im Tab DeepSeek gewählt ist, oder die eigene Einstellung des Ordners.
Nach Provider #
Das Fenster ist für jeden Provider gleich, der auf dem Relay-Host läuft: GitHub Copilot, OpenAI, Claude, Cursor, Grok und DeepSeek. Es liest den Ordner und git, nicht den Agent.
| Provider | Git-Änderungen |
|---|---|
| Claude Cloud | Der Chat arbeitet auf einem Klon bei Anthropic, den dieses Fenster nicht sehen kann. Der Eintrag steht im Menü und liest den Arbeitsordner, den du in New Chat (Neuer Chat) auf dem Relay-Host gewählt hast (den, der Repository und Branch ausgefüllt hat), nicht die Änderungen der Sandbox. Die Ergebnisse des Agents kommen als Branches zurück, die er gepusht hat: Die Cloud-Zeile über dem Eingabebereich hat pro gepushtem Branch einen ⇡ branch-Link. Siehe Claude Cloud. |