Réponse rapide
Utilisez Git worktree pour séparer les tâches OpenCode parallèles
Git gère les worktrees liés ; OpenCode s’exécute depuis le dossier de projet ouvert. Chaque worktree possède ses fichiers, son index et sa branche, mais partage l’historique et les objets Git. Utilisez-le lorsque deux tâches indépendantes modifieraient le même checkout. Il n’isole pas les bases de données, services, secrets ou fichiers générés hors de Git.
Un OpenCode worktree est un arbre de travail lié de Git : chaque tâche dispose de son dossier et de sa branche, tout en partageant l’historique du dépôt. Créez-le avec Git, entrez dans ce dossier, puis lancez OpenCode. C’est utile quand des tâches parallèles ont besoin de fichiers et de limites de revue distincts.
Guides OpenCode associés: OpenCode Agents et AGENTS.md · Configuration JSONC OpenCode · Permissions OpenCode · Stockage des sessions OpenCode.
1. Ce que change un worktree Git pour OpenCode
Un Git worktree est un autre répertoire de travail relié au même dépôt. Le checkout principal peut rester sur main, tandis qu’un dossier voisin utilise work/auth. Les fichiers et la branche courante sont distincts, mais Git partage les objets et l’historique : un clone complet par tâche n’est généralement pas nécessaire.
Ce flux ne nécessite pas de mode worktree spécial dans OpenCode. Lancez la CLI depuis le nouveau dossier, qui devient le contexte du projet. Les réglages globaux peuvent toujours s’appliquer, mais les fichiers non suivis et l’environnement local ne sont pas copiés automatiquement.
2. Créer un worktree lié en trois étapes sûres
Commencez par vérifier le checkout courant. Un point de départ propre aide à distinguer les changements de la tâche principale de ceux de la nouvelle branche. Depuis la racine du dépôt, créez une branche et son worktree dans un dossier voisin, à l’extérieur du dépôt d’origine.
L’exemple crée work/auth au commit courant et le place dans ../app-auth. Si la branche existe déjà, vérifiez qu’un autre worktree ne l’utilise pas avant de la reprendre. Git empêche généralement de checkout une même branche dans plusieurs worktrees liés.
Lancez ces commandes depuis la racine du dépôt principal. La branche démarre au commit courant.
git status --short --branch
git worktree add -b work/auth ../app-auth
cd ../app-auth
opencode
git worktree list
git -C ../app-auth status --short --branch3. Lancer OpenCode dans le bon répertoire
Après cd ../app-auth, lancez opencode depuis ce shell. Le répertoire courant est la frontière importante : ouvrez un terminal ou une session par worktree, puis vérifiez la racine du projet avant d’autoriser des modifications. Une première demande en lecture seule peut résumer la branche et les fichiers à inspecter.
Donnez à chaque session une tâche précise et notez sa branche. L’une peut modifier les tests d’authentification, l’autre la documentation. Évitez que deux sessions modifient le même fichier ou le même dossier généré. Des répertoires distincts réduisent les collisions, mais ne coordonnent pas automatiquement les agents.
4. Éviter les conflits de branches, fichiers et services
Le worktree sépare les fichiers suivis par Git et l’index, mais ce n’est ni un conteneur ni une frontière de sécurité. Une base locale, un serveur de test, un cache, un projet Docker ou un compte externe peut rester partagé. Si nécessaire, séparez le schéma, le port, le nom du projet ou utilisez un environnement jetable.
Git récupère les fichiers suivis du commit choisi. Les fichiers .env, certificats, caches et résultats ignorés ne sont pas garantis dans le nouveau worktree. Recréez seulement l’environnement nécessaire, chargez les secrets via le mécanisme approuvé et vérifiez git status --short --branch avant et après le travail.
| Situation | Worktree adapté ? | À vérifier avant |
|---|---|---|
| Fonctionnalité indépendante sur une autre branche | Oui | Définir un responsable et les fichiers concernés. |
| Enquête en lecture seule sur le diff actuel | En général non | Une autre session peut lire le même checkout. |
| Deux tâches partagent une base ou un serveur | Sous conditions | Séparer le schéma, le port ou le service temporaire. |
| Les deux tâches modifient les mêmes fichiers | Non | Séquencer les modifications ou répartir les rôles. |
5. Relire, fusionner et nettoyer sans perdre de changements
Relisez la branche du worktree comme un changement indépendant. Inspectez git diff, lancez les vérifications du projet dans ce dossier et confirmez que seuls les fichiers attendus sont présents. Après les tests, fusionnez ou rebasez selon le processus de l’équipe. Les changements n’apparaissent pas dans un autre checkout avant le partage des commits.
Avant la suppression, repérez les modifications non validées et décidez de les commit, stash ou conserver. git worktree remove ../app-auth supprime un checkout propre ; Git refuse s’il reste des changements, sauf option forcée. N’utilisez pas la force comme nettoyage normal. git worktree prune retire les enregistrements obsolètes, pas les worktrees actifs.

6. Choisir entre worktree et nouvelle session
Choisissez un worktree pour séparer des branches, des snapshots de fichiers ou une limite de revue qui doit rester ouverte plusieurs jours. Pour une enquête en lecture seule ou qui doit voir les fichiers non commités, une autre session dans le même checkout est plus simple. Pour des tâches séquentielles, changez simplement de branche.
Le worktree ajoute la gestion des noms de branches, dépendances, services, tests, fusion et nettoyage. Si deux agents modifient les mêmes fichiers, l’intégration finale peut devenir plus difficile. Séparez d’abord les changements ou exécutez ces modifications dans l’ordre.
7. Limites et vérifications de dépannage
Si git worktree add indique que la branche est déjà utilisée, consultez git worktree list, puis créez une branche distincte ou revenez au worktree existant. Si OpenCode affiche des fichiers inattendus, vérifiez le chemin du terminal et la racine du projet avant de changer la configuration. Les fichiers ignorés ne font pas partie du checkout.
Si les tests se gênent entre sessions, cherchez hors de Git : bases, ports, dossiers temporaires, générateurs et caches partagés. Si la suppression est bloquée, exécutez git status dans ce worktree et préservez les changements utiles. Gardez le checkout principal disponible pour intégrer le travail.
FAQ OpenCode worktree
Comment utiliser Git worktree avec OpenCode ?
Lancez git worktree add -b nom-branche ../nom-dossier depuis le dépôt, entrez dans le nouveau dossier puis démarrez opencode. Vérifiez le chemin et la branche avant toute modification.
OpenCode possède-t-il une commande worktree ?
Ce guide utilise la commande worktree de Git. OpenCode peut démarrer depuis le nouveau répertoire de projet ; aucun indicateur spécial n’est nécessaire.
Deux sessions peuvent-elles utiliser la même branche dans deux worktrees ?
Git empêche généralement de checkout une même branche dans plusieurs worktrees liés. Créez une autre branche ou retournez au checkout existant.
Les fichiers d’environnement sont-ils copiés ?
Git récupère les fichiers suivis. Les fichiers ignorés ou non suivis comme .env ne sont pas garantis ; préparez l’environnement et ne versionnez pas les secrets.
Comment supprimer un worktree sans perdre de changements ?
Vérifiez son état, conservez ou committez les changements, puis lancez git worktree remove path. git worktree prune retire les enregistrements obsolètes.
Références officielles
Les documentations Git et OpenCode ont été vérifiées le 23 septembre 2026. Le cycle de vie des worktrees relève de Git ; vérifiez les options de votre version installée.
Guides OpenCode associés: OpenCode Agents et AGENTS.md · Configuration JSONC OpenCode · Permissions OpenCode · Stockage des sessions OpenCode.
