Le développement parallèle avec git worktree est la façon la plus propre de mener plusieurs chantiers dans un même dépôt sans les mélanger. Avec des agents IA, c’est encore plus important : si deux agents travaillent dans le même dossier, l’un écrase les changements de l’autre, les tests tournent sur du code à moitié écrit et personne ne sait quel changement appartient à qui.
Cet article explique ce que sont les git worktrees, comment les utiliser avec des agents et comment garder chaque tour d’agent réversible.
Qu’est-ce qu’un git worktree ?
Un git worktree ouvre une autre branche du même dépôt dans un dossier séparé, en même temps. Chaque dossier a ses propres fichiers de travail, mais les données .git sont partagées. Un commit fait dans un worktree est visible tout de suite depuis les autres.
Comparé à un clone :
| Worktree | Clone séparé | |
|---|---|---|
| Espace disque | Faible (historique partagé) | Tout le dépôt |
| Visibilité des commits | Immédiate | Demande fetch/push |
| Même branche à deux endroits | Bloqué (sûr) | Possible (risque de confusion) |
| Mise en place | Une commande | Cloner et configurer |
Commandes de base
Créer un worktree sur une nouvelle branche :
git worktree add ../acme-web-auth -b auth-refactor
Ouvrir un worktree à partir d’une branche existante :
git worktree add ../acme-web-billing billing-v2
Lister et supprimer des worktrees :
git worktree list
git worktree remove ../acme-web-auth
git worktree prune
prune nettoie les enregistrements des worktrees dont le dossier a été supprimé à la main.
Développement parallèle avec git worktree : un arbre par agent
La règle pour des agents en parallèle est simple : donnez à chaque agent exposé aux conflits son propre worktree.
Un exemple de disposition :
| Agent | Tâche | Worktree | Branche |
|---|---|---|---|
| Architect (Claude Code) | Restructuration de l’auth | ../acme-web-auth | auth-refactor |
| Frontend (Gemini CLI) | Page des réglages | ../acme-web-settings | settings-ui |
| Tester (Codex) | Tests de l’auth | ../acme-web-auth | auth-refactor |
Tester partage le worktree d’Architect parce qu’il teste le changement d’Architect et ne travaille que dans tests/. L’agent frontend travaille sur tout autre chose, sur sa propre branche.
Ce que cela vous apporte :
- Les agents ne voient jamais les fichiers à moitié écrits des autres.
- Chaque chantier est fusionné par sa propre branche et sa propre pull request.
- Abandonner un chantier revient à supprimer sa branche.
Gérer les worktrees dans AgentVera
Vous pouvez gérer les worktrees en ligne de commande, mais cela devient difficile à suivre quand les agents se multiplient. Dans AgentVera, l’onglet Worktrees du panneau de droite permet de :
- Créer un worktree à partir d’une branche nouvelle ou existante.
- Voir pour chaque worktree le nombre de changements, l’avance ou le retard sur la branche principale et le dernier commit.
- Lancer un agent directement dans un worktree.
- Verrouiller, élaguer, supprimer de force un worktree et supprimer sa branche.
Quand vous créez un nouvel agent, vous pouvez aussi choisir un worktree comme espace de travail, et le volet de l’agent affiche sa branche dans une petite étiquette. Les fichiers Markdown que les agents modifient dans les worktrees sont listés dans le panneau Specs comme plans et docs.
Gardez chaque tour réversible
Les worktrees séparent les agents les uns des autres. Mais que faire si un agent part dans la mauvaise direction dans son propre worktree ?
La réponse classique est de committer souvent, mais committer chaque étape d’un agent encombre l’historique. Les tours d’AgentVera prennent une autre voie :
- Au début de chaque tour, un instantané du dossier de travail part dans une ref git cachée.
- Votre branche, votre index et votre stash restent intacts.
- Les 60 derniers tours sont conservés par agent.
- Depuis Turns dans le menu Options du volet, vous voyez les fichiers modifiés par un tour.
- Undo this turn annule les changements de ce tour, et vous pouvez aussi annuler l’annulation.
Vous pouvez donc laisser un agent essayer des choses librement : si le résultat ne vous plaît pas, vous êtes à un clic de l’état précédent.
Avant de fusionner
Avant d’intégrer à la branche principale le travail terminé de branches parallèles :
- Lancez les tests dans chaque worktree.
- Relisez les diffs ; la revue de code automatique accélère cette étape.
- Soignez les messages de commit. Le panneau Git d’AgentVera peut écrire un message dans le style de votre dépôt à partir du diff indexé, avec Claude Haiku.
- Poussez la branche et ouvrez une pull request ; la carte GitHub du panneau Git affiche la pull request de la branche courante ou en ouvre une nouvelle.
Erreurs fréquentes
- Ouvrir la même branche dans deux worktrees. Git ne le permet pas, et c’est une protection.
- Laisser des enregistrements de dossiers supprimés. Nettoyez-les avec
git worktree prune. - Oublier node_modules. Chaque worktree a besoin de ses propres dépendances installées.
- Prendre les tours d’agent pour des commits. Les tours servent à annuler ; committez quand même pour un historique durable.
Une journée type : trois agents, deux branches
Rendons cela concret avec une journée de travail.
Matin : la mise en place
Le dossier principal a main d’extraite. Il y a deux tâches : une restructuration de l’auth et une page de réglages. Vous ouvrez deux worktrees :
git worktree add ../acme-web-auth -b auth-refactor
git worktree add ../acme-web-settings -b settings-ui
Installez les dépendances dans chacun :
cd ../acme-web-auth && pnpm install
cd ../acme-web-settings && pnpm install
Architect et Tester démarrent dans le worktree auth-refactor ; l’agent frontend démarre dans settings-ui.
Midi : un tour tourne mal
En modifiant la page des réglages, l’agent frontend change aussi le style d’un composant partagé. C’est hors périmètre. Dans la liste Turns, vous voyez les fichiers modifiés par le dernier tour, vous l’annulez et vous dites à l’agent de ne pas toucher au composant partagé. L’historique de la branche reste propre, car annuler n’est pas un commit : c’est un retour à l’instantané de la ref cachée.
Soir : la fusion
Quand le travail sur l’auth est terminé, vous lancez les tests, vérifiez la revue et poussez la branche. Si la page des réglages n’est pas finie, son worktree reste ouvert et l’agent reprend dans le même dossier le lendemain. Quand vous quittez puis rouvrez l’app, AgentVera ramène les agents Claude et Codex dans la même conversation grâce à l’historique du CLI.
Détails d’environnement à surveiller dans les worktrees
Les accrocs les plus fréquents avec des worktrees parallèles tiennent à l’environnement, pas au code :
- Conflits de ports : si vous lancez un serveur de dev dans deux worktrees à la fois, ne les laissez pas demander le même port. Donnez-leur des ports différents via des variables d’environnement.
- Fichiers d’environnement : les fichiers hors de git, comme
.env, n’apparaissent pas tout seuls dans un nouveau worktree ; copiez-les. - Base de données : si deux branches portent des migrations différentes, partager une seule base locale peut poser problème.
Le panneau Ports d’AgentVera montre les ports en écoute et quel agent a démarré chacun, pour suivre quel worktree a ouvert quel serveur.
Copier un agent et bifurquer la conversation
Parfois, vous voulez essayer le même problème de deux façons. Quand vous copiez un agent dans AgentVera, son outil, son compte, son modèle, son effort, son rôle, son groupe et son worktree sont copiés à l’identique, et vous pouvez aussi bifurquer l’historique de conversation (--fork-session pour Claude, fork pour Codex).
Combiné aux worktrees, cela donne un bon dispositif d’expérimentation : lancez deux agents bifurqués de la même conversation dans deux worktrees, comparez les résultats et fusionnez la branche qui vous plaît. Supprimer l’autre branche efface l’expérience sans laisser de trace.
Liste de contrôle
- Chaque agent exposé aux conflits a-t-il son propre worktree ?
- Les dépendances sont-elles installées dans chaque worktree ?
- Les rôles des agents indiquent-ils dans quels dossiers ils travaillent ?
- Les tests et une revue ont-ils été faits avant la fusion ?
En résumé
Le développement parallèle avec git worktree sépare physiquement les agents, et les tours gardent réversibles les changements de chaque agent. Ensemble, ils forment la base pour travailler en sécurité avec plusieurs agents.
AgentVera réunit worktrees, tours et panneau Git dans une seule fenêtre. Lisez-le avec agents de code en parallèle, ou commencez avec l’offre gratuite.