Der .env kann im Codex Worktree normalerweise nicht gefunden werden, da die Datei von Git ignoriert wird und der neue Worktree nur automatisch Dateien abruft, die vom Repository verfolgt werden. Für lokal gehostete Worktrees, die von Codex Apps erstellt wurden, können Sie .worktreeinclude im Repository-Root-Verzeichnis hinzufügen und nur die tatsächlich benötigten ignorierten Dateien kopieren.
Die Mindestkonfiguration wird so geschrieben
Erstelle ein .worktreeinclude im Root-Verzeichnis des Haupt-Repositorys:
.env
.env.local
config/local-secrets.jsonDie Syntax ähnelt dem Pfadmuster von .gitignore. Nachdem ein neuer Worktree erstellt wurde, kopiert Codex die entsprechende Ignorieren-Datei aus dem lokalen Checkup-Verzeichnis; Andere nicht gelistete Dokumente werden nicht zusammen aufgenommen. Dateien, die bereits am Zielort vorhanden sind, werden nicht überschrieben.
Warum ist der alte Worktree immer noch nicht verfügbar?
.worktreeinclude Handelt während des Prozesses zur Erstellung eines lokal gehosteten Worktrees und schreibt nicht automatisch bereits erstellte Worktrees neu. Alte Worktrees können die erforderlichen Dateien nach Bestätigung des Zielpfads manuell kopieren oder eine neue Worktree-Validierungsregel erstellen. Ändern Sie .env nicht zu Git-Trace-Dateien, um das Problem zu beheben, da dies das Risiko erhöht, dass Schlüssel falsch kommittieren.
Erstens: Bestimmen Sie, ob das Szenario geeignet ist
Dieser Mechanismus ist für den nativen Worktree konzipiert, der von ChatGPT-Desktop-Anwendungen verwaltet wird. Remote Worktree und Verzeichnisse, die durch das Ausführen von git worktree add aus der Befehlszeile erstellt werden, kopieren Konfigurationen aufgrund dieser Datei nicht automatisch; Diese Umgebungen sollten durch ihre jeweiligen Initialisierungsskripte, Schlüsselinjektionen oder Bereitstellungskonfigurationen vorbereitet werden.
Was soll ich tun, wenn die Datei eintrifft und trotzdem ein Fehler angezeigt wird?
Zunächst bestätigen Sie das aktuelle Verzeichnis im Worktree-Integrationsterminal und prüfen Sie dann, ob die Anwendung .env, .env.local oder einen anderen Namen liest. Dann überprüfe die Dateiberechtigungen und das Arbeitsverzeichnis des Startbefehls. Du kannst die Datei sehen, aber die Variable ist leer. Das Problem hat sich von "Worktree nicht kopiert" zu "Anwendung hat diese Datei nicht geladen" verschoben. Du solltest die Umgebungsvariablenregeln des Frameworks überprüfen, anstatt .worktreeinclude weiter zu ändern.
Listen Sie nur die lokalen Konfigurationen auf, die zum Ausführen erforderlich sind, und vermeiden Sie das Kopieren des gesamten Schlüssels oder Home-Verzeichnisses in jeden Arbeitsbaum. Dadurch kann der Test ausgeführt werden, ohne den Worktree in eine randlose Kopie sensibler Dateien zu verwandeln.