Guide de flux Git

OpenCode Worktree : séparer les tâches de code avec 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.

Trois espaces de travail OpenCode séparés reliés à un dépôt Git partagé
Illustration conceptuelle : chaque worktree a son checkout tandis que l’historique Git est partagé.

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.

Exemple : créer puis ouvrir un worktree
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 --branch

3. 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.

Vérification rapide avant d’ouvrir un autre checkout
SituationWorktree adapté ?À vérifier avant
Fonctionnalité indépendante sur une autre brancheOuiDéfinir un responsable et les fichiers concernés.
Enquête en lecture seule sur le diff actuelEn général nonUne autre session peut lire le même checkout.
Deux tâches partagent une base ou un serveurSous conditionsSéparer le schéma, le port ou le service temporaire.
Les deux tâches modifient les mêmes fichiersNonSé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.

Un worktree de fonctionnalité est testé, fusionné dans la branche principale, puis retiré tandis que le travail inachevé reste séparé
Ne retirez le répertoire lié qu’après avoir relu et conservé les changements utiles.

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.