glossaire

qu’est-ce qu’un worktree git ?

TL;DR

Un worktree git est une deuxième copie de travail de votre dépôt, sur sa propre branche et dans son propre dossier, qui partage le même historique. Il vous permet de travailler sur deux branches à la fois sans stash ni changement de branche. Pour les agents IA, c’est ce qui rend sûr le travail en parallèle, car chacun modifie ses propres fichiers. Pane crée un worktree pour chaque pane, y copie votre .env et vos réglages, et le supprime quand vous archivez le pane.

Un worktree git est une deuxième copie de travail de votre dépôt, dans son propre dossier et sur sa propre branche. Il partage le même historique git que votre copie principale. Il se crée donc vite et prend peu d’espace disque en plus. Vous pouvez en ouvrir autant que vous voulez en même temps.

le problème que les worktrees résolvent

Un dossier ne peut avoir qu’une seule branche extraite. Un worktree ajoute un autre dossier avec une autre branche.

Normalement, un dépôt est un dossier avec une seule branche extraite. Pour travailler sur deux choses à la fois, vous mettez vos changements de côté avec stash, changez de branche, faites l’autre travail, revenez et récupérez vos changements. Ça marche, mais c’est lent et facile de se tromper.

Un worktree vous donne un deuxième dossier déjà placé sur une autre branche. La fonctionnalité A vit dans un dossier et la fonctionnalité B dans un autre, tous deux ouverts en même temps, sans stash ni changement de branche.

pourquoi c’est important pour les agents ia

Les worktrees rendent sûr le lancement de plusieurs agents sur un même dépôt.

Deux agents IA dans le même dossier écrasent le travail l’un de l’autre. L’agent A modifie auth.ts, l’agent B modifie auth.ts une minute plus tard, et le dernier à enregistrer gagne. Le travail de l’autre agent est perdu, et aucun des deux ne le sait.

Avec un worktree chacun, chaque agent a son propre dossier, sa propre branche et ses propres fichiers. Les deux peuvent modifier auth.ts en même temps sans toucher à la copie de l’autre. Quand ils ont fini, vous relisez et mergez chaque branche séparément.

à quoi ça ressemble sur le disque

Même historique, fichiers séparés. L’emplacement des dossiers dépend de vous ou de votre outil.

my-project/                 ← your main checkout (main)
my-project/worktrees/
  ├─ add-auth/              ← worktree, branch add-auth
  └─ fix-nav/               ← worktree, branch fix-nav

Tous les worktrees partagent le même historique git. Un commit fait dans l’un est donc visible depuis les autres. Les modifications non commitées restent dans leur propre dossier. Git ne se soucie pas de l’emplacement des worktrees : à côté du dépôt, dans un dossier séparé ou à l’intérieur, comme le fait Pane.

comment pane automatise tout ça

Pane crée, remplit et nettoie un worktree pour chaque pane. Vous ne tapez jamais les commandes.

Vous n’avez besoin de lancer aucune commande git. Quand vous créez un pane, Pane :

  1. Prend un worktree préparé à l’avance pour ce projet et cette branche, pour que le pane s’ouvre presque aussitôt, et lui donne une nouvelle branche.
  2. Y copie vos fichiers .env, les réglages des agents comme .claude et .codex, et node_modules, pour que l’agent puisse démarrer tout de suite. Vous pouvez modifier la liste dans les réglages.
  3. Quand vous archivez le pane, vérifie le travail non commité, non suivi ou non poussé, puis supprime le worktree. Vous pouvez restaurer plus tard un pane archivé.

la méthode manuelle

Trois commandes pour créer et démarrer, deux pour nettoyer.

Sans outil, la même chose demande quelques commandes git :

echo "worktrees/" >> .git/info/exclude   # once: keep them out of git status
git worktree add worktrees/add-auth -b add-auth
cd worktrees/add-auth
claude                      # start your agent here

# once the branch is merged:
git worktree remove worktrees/add-auth
git branch -d add-auth

Pensez à supprimer le worktree et la branche une fois le merge fait. La plupart des gens oublient, et c’est pour ça que les outils l’automatisent.

Sources

Corrections
Si quelque chose ici est faux ou obsolète, dites-le-nous. Nous corrigerons et mettrons à jour la date en haut de la page. Ouvrir une issue sur GitHub
Sources

questions fréquentes

ou
Télécharger*
Alerte Windows SmartScreenLes téléchargements directs peuvent afficher une alerte SmartScreen tant que Pane n'est pas signé. Pane est entièrement open source. Vous pouvez vérifier le code et le compiler vous-même.1. Cliquez sur Informations complémentaires2. Cliquez sur Exécuter quand même3. Continuez l'installationL'installation PowerShell télécharge directement la version officielle et évite la plupart des blocages du navigateur.installation globale npm
Collez cette commande dans PowerShell.Linux

Par Parsa Khazaeepoul, cofondateur de Pane. .