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

  1. 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.
    Terminal
    git log --oneline -1
  2. Ignorer le dossier des worktreesClaude Code les range dans .claude/worktrees/ à la racine du projet. La documentation conseille de l'ajouter au .gitignore pour ne pas voir leurs fichiers dans votre copie principale.
    Terminal
    echo ".claude/worktrees/" >> .gitignore
  3. Première sessionLe nom que vous donnez devient le dossier .claude/worktrees/formulaire-contact/ et la branche worktree-formulaire-contact. La première fois dans un dossier, lancez simplement claude pour accepter la confiance du dossier.
    Terminal 1
    claude --worktree formulaire-contact
  4. Seconde session, dans un autre onglet-w est la forme courte de --worktree.
    Terminal 2
    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 install ou 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.
.worktreeinclude
.env
.env.local

Un exemple dans une agence

Lundi matin, trois demandes d'un client sur son site. Je lance trois sessions, chacune avec une consigne fermée :

Prompt à copier
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 list affiche les copies, git worktree remove en 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

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.