Git worktrees pour agents IA en parallèle

Utilisez les git worktrees pour des agents IA en parallèle : un arbre de travail par agent, pas de conflits et chaque tour réversible. Commandes et méthode.

Solviera Teknoloji 7 min de lecture

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 :

WorktreeClone séparé
Espace disqueFaible (historique partagé)Tout le dépôt
Visibilité des commitsImmédiateDemande fetch/push
Même branche à deux endroitsBloqué (sûr)Possible (risque de confusion)
Mise en placeUne commandeCloner 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 :

AgentTâcheWorktreeBranche
Architect (Claude Code)Restructuration de l’auth../acme-web-authauth-refactor
Frontend (Gemini CLI)Page des réglages../acme-web-settingssettings-ui
Tester (Codex)Tests de l’auth../acme-web-authauth-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 :

  1. Créer un worktree à partir d’une branche nouvelle ou existante.
  2. Voir pour chaque worktree le nombre de changements, l’avance ou le retard sur la branche principale et le dernier commit.
  3. Lancer un agent directement dans un worktree.
  4. 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.

Questions

Qu’est-ce qu’un git worktree ?

Une fonction de git qui ouvre en même temps plusieurs branches du même dépôt dans des dossiers séparés. Chaque dossier a ses propres fichiers de travail ; l’historique du dépôt est partagé.

En quoi un worktree diffère-t-il d’un clone ?

Un clone est une copie complète du dépôt. Un worktree partage les mêmes données .git, prend moins de place, et les commits apparaissent tout de suite d’une branche à l’autre.

Comment annuler l’un des tours d’un agent ?

AgentVera enregistre le dossier de travail dans une ref git cachée au début de chaque tour. Dans Options → Turns, vous voyez les fichiers modifiés par un tour et vous l’annulez.

Annuler un tour touche-t-il ma branche ou mon stash ?

Non. Les instantanés vivent sur une ref cachée ; votre branche, votre index et votre stash restent intacts.

Réunissez vos agents sur un seul bureau.

Téléchargez AgentVera gratuitement ; vos CLI installées sont prêtes à l’emploi.

Autres articles