- Outils
- Claude Code, git
- Prix
- Inclus (abonnement Claude ou API)
- Temps
- 10 min
- Niveau
- Terminal, intermédiaire
Vous demandez à Claude de corriger le formulaire de contact du site. Pendant qu'il travaille, vous ouvrez un second terminal et lancez une autre session pour créer la page tarifs. Les deux modifient le même dossier, parfois le même fichier, et l'une défait ce que l'autre vient d'écrire. Le problème ne vient pas de l'IA : deux personnes qui écrivent en même temps dans le même document produiraient le même désordre. La solution s'appelle un worktree.
À quoi sert un worktree
Un worktree git est un second dossier de travail rattaché au même projet : il a ses propres fichiers et sa propre branche, mais partage l'historique et le dépôt distant. Chaque session de Claude Code travaille dans le sien, comme chaque collègue sur son propre poste. C'est utile à un indépendant ou une petite équipe qui veut confier deux ou trois tâches à des agents IA en même temps : un correctif, une nouvelle page, une mise à jour de traductions.
Lancer deux sessions en parallèle
- Vérifier que le projet est un dépôt git avec au moins un commitClaude Code crée le worktree à partir d'un commit existant. Dans un dépôt vide, la commande échoue.
git log --oneline -1 - Ignorer le dossier des worktreesClaude Code les range dans
.claude/worktrees/à la racine du projet. La documentation conseille de l'ajouter au.gitignorepour ne pas voir leurs fichiers dans votre copie principale.echo ".claude/worktrees/" >> .gitignore - Première sessionLe nom que vous donnez devient le dossier
.claude/worktrees/formulaire-contact/et la brancheworktree-formulaire-contact. La première fois dans un dossier, lancez simplementclaudepour accepter la confiance du dossier.claude --worktree formulaire-contact - Seconde session, dans un autre onglet
-west la forme courte de--worktree.claude -w page-tarifs
Préparer chaque copie
Un worktree est une copie neuve : les dépendances et les fichiers ignorés par git, comme .env, n'y sont pas. Deux réglages évitent de tout refaire à la main.
- Les dépendances : demandez à Claude, au début de la session, de les installer (
npm installou l'équivalent de votre projet). - Les fichiers locaux : créez un fichier
.worktreeincludeà la racine. Il suit la syntaxe du.gitignore, et seuls les fichiers à la fois listés et ignorés par git sont copiés dans chaque nouveau worktree.
.env
.env.localUn exemple dans une agence
Lundi matin, trois demandes d'un client sur son site. Je lance trois sessions, chacune avec une consigne fermée :
Tu travailles seul sur cette tâche, dans ce worktree. Tâche : corriger l'envoi du formulaire de contact (le message de confirmation ne s'affiche pas). Ne touche qu'aux fichiers nécessaires. Lance le build et les tests avant de finir. Termine par un commit et un résumé de trois lignes : ce qui change, ce qui a été testé, ce qui ne l'a pas été.Les deux autres sessions reçoivent le même cadre avec leur propre tâche. Je relis ensuite chaque branche et je l'envoie en pull request, une par sujet.
Quand la session se termine
- Rien n'a changé : Claude Code supprime le worktree et sa branche (il vous demande d'abord si la session porte un nom).
- Il reste du travail : il vous demande de garder ou de supprimer. Garder conserve le dossier et la branche, et Claude affiche la commande pour reprendre plus tard.
- À la main :
git worktree listaffiche les copies,git worktree removeen retire une.
Les sous-agents peuvent aussi travailler chacun dans un worktree : demandez à Claude « use worktrees for your agents », ou ajoutez isolation: worktree dans l'en-tête d'un agent personnalisé.
Limites et coût
- Les conflits ne disparaissent pas, ils sont déplacés : si deux branches modifient les mêmes lignes, git vous le signalera à la fusion. Donnez à chaque session une tâche qui touche des fichiers différents.
- Chaque session consomme ses propres jetons : chaque agent a sa propre conversation, que Claude relit à chaque message. Plusieurs agents en parallèle font donc monter la consommation d'autant ; sur un abonnement, vous atteindrez la limite plus vite.
- La base de départ : par défaut, le worktree part de la branche principale du dépôt distant, pas de votre travail en cours. Le réglage
worktree.baseRefà"head"change ce comportement. - Le disque : chaque copie occupe de la place, surtout avec ses dépendances. Faites le ménage régulièrement.
Sécurité. .worktreeinclude recopie vos fichiers de secrets dans chaque worktree. Vérifiez que .claude/worktrees/ est bien ignoré par git (git check-ignore .claude/worktrees/) avant de committer quoi que ce soit, et n'y listez que ce dont l'agent a vraiment besoin.
Sources
- Claude Code : Run parallel sessions with worktrees
- Claude Code : Common workflows
- Claude Code : Manage costs effectively
- Documentation git worktree
Vous voulez un outil sur mesure développé avec cette méthode, branche par branche et relu ? C'est ce que je fais en logiciels sur mesure.