Démarrer Claude dans un worktree
Passez--worktree ou -w pour créer un worktree isolé et démarrer Claude dedans. Par défaut, le worktree est créé sous .claude/worktrees/<value>/ à la racine de votre dépôt, sur une nouvelle branche nommée worktree-<value> :
WorktreeCreate. Exécutez la commande à nouveau avec un nom différent dans un autre terminal pour démarrer une deuxième session isolée :
bright-running-fox :
EnterWorktree. Une fois dans un worktree, Claude peut basculer directement vers un autre sous .claude/worktrees/ en appelant EnterWorktree avec le chemin cible. Le worktree précédent reste sur le disque intact.
Avant d’utiliser --worktree de manière interactive dans un répertoire pour la première fois, acceptez la boîte de dialogue de confiance de l’espace de travail en exécutant claude une fois dans ce répertoire. Si la confiance n’a pas encore été acceptée, --worktree se termine avec une erreur et vous invite à exécuter claude dans le répertoire en premier. Les exécutions non interactives avec -p ignorent la vérification de confiance, donc claude -p --worktree procède sans elle.
Choisir la branche de base
Les worktrees se ramifient à partir de la branche par défaut de votre dépôt,origin/HEAD, ils commencent donc à partir d’un arbre propre correspondant à la télécommande. Si aucune télécommande n’est configurée ou si la récupération échoue, le worktree revient à votre HEAD local actuel. Pour toujours vous ramifier à partir du HEAD local à la place, définissez worktree.baseRef sur "head" dans paramètres. Définir baseRef sur "head" fait que les nouveaux worktrees portent vos commits non poussés et l’état de la branche de fonctionnalité, ce qui est utile lors de l’isolation des subagents qui doivent opérer sur un travail en cours. Le paramètre n’accepte que "fresh" ou "head", pas des refs git arbitraires :
#, ou une URL complète de demande de tirage GitHub. Claude Code récupère pull/<number>/head à partir de origin et crée le worktree à .claude/worktrees/pr-<number> :
WorktreeCreate, qui remplace entièrement la logique git worktree par défaut.
Copier les fichiers gitignorés dans les worktrees
Un worktree est une extraction fraîche, donc les fichiers non suivis comme.env ou .env.local de votre dépôt principal ne sont pas présents. Pour les copier automatiquement quand Claude crée un worktree, ajoutez un fichier .worktreeinclude à la racine de votre projet.
Le fichier utilise la syntaxe .gitignore. Seuls les fichiers qui correspondent à un motif et sont également gitignorés sont copiés, donc les fichiers suivis ne sont jamais dupliqués.
Ce .worktreeinclude copie deux fichiers env et une configuration de secrets dans chaque nouveau worktree :
.worktreeinclude
--worktree, worktrees de subagents, et aux sessions parallèles dans l’application de bureau.
Isoler les subagents avec worktrees
Les subagents peuvent s’exécuter dans leurs propres worktrees pour que les modifications parallèles ne se heurtent pas. Demandez à Claude d’« utiliser les worktrees pour vos agents », ou définissez-le de manière permanente sur un subagent personnalisé en ajoutantisolation: worktree au frontmatter. Chaque subagent obtient un worktree temporaire qui est supprimé automatiquement quand le subagent se termine sans modifications.
Les worktrees des subagents utilisent la même branche de base que --worktree, donc ils se ramifient à partir de la branche par défaut de votre référentiel sauf si worktree.baseRef est défini sur "head".
Nettoyer les worktrees
Quand vous quittez une session worktree, le nettoyage dépend de si vous avez apporté des modifications :- Pas de modifications non validées, pas de fichiers non suivis et pas de nouveaux commits : le worktree et sa branche sont supprimés automatiquement. Si la session a un nom, Claude vous demande plutôt de conserver le worktree pour plus tard
- Des modifications non validées, des fichiers non suivis ou de nouveaux commits existent : Claude vous demande de conserver ou de supprimer le worktree. Conserver préserve le répertoire et la branche pour que vous puissiez revenir plus tard. Supprimer supprime le répertoire worktree et sa branche, en supprimant toutes les modifications non validées, les fichiers non suivis et les commits
- Exécutions non interactives : les worktrees créés avec
--worktreeaux côtés de-pne sont pas nettoyés automatiquement puisqu’il n’y a pas d’invite de sortie. Supprimez-les avecgit worktree remove
cleanupPeriodDays, à condition qu’ils n’aient pas de modifications non validées, pas de fichiers non suivis et pas de commits non poussés. Les worktrees que vous créez avec --worktree ne sont jamais supprimés par ce balayage.
Pendant qu’un agent s’exécute, Claude exécute git worktree lock sur son worktree pour que le nettoyage concurrent ne puisse pas le supprimer. Le verrou est libéré quand l’agent se termine. Pour nettoyer un worktree que le balayage conserve, exécutez git worktree remove, en ajoutant --force si le worktree a des modifications non validées ou des fichiers non suivis.
Gérer les worktrees manuellement
Pour un contrôle total sur l’emplacement du worktree et la configuration de la branche, créez des worktrees directement avec Git. Ceci est utile quand vous devez extraire une branche existante spécifique ou placer le worktree en dehors du dépôt. Créer un worktree sur une nouvelle branche :Contrôle de version non-git
L’isolation des worktrees utilise git par défaut. Pour SVN, Perforce, Mercurial ou d’autres systèmes, configurez les hooksWorktreeCreate et WorktreeRemove pour fournir une logique de création et de nettoyage personnalisée. Parce que le hook remplace le comportement git par défaut, .worktreeinclude n’est pas traité quand vous utilisez --worktree. Copiez plutôt tous les fichiers de configuration locale à l’intérieur de votre script de hook.
Ce hook WorktreeCreate lit le nom du worktree à partir de stdin, extrait une copie de travail SVN fraîche, et imprime le chemin du répertoire pour que Claude Code puisse l’utiliser comme répertoire de travail de la session :
WorktreeRemove pour nettoyer quand la session se termine. Voir la référence des hooks pour le schéma d’entrée et un exemple de suppression.
Voir aussi
Les worktrees gèrent l’isolation des fichiers. Les pages connexes ci-dessous couvrent la délégation du travail dans ces extractions isolées et le basculement entre les sessions que vous créez :- Subagents : déléguer le travail à des agents isolés dans une session
- Équipes d’agents : coordonner plusieurs sessions Claude automatiquement
- Gérer les sessions : nommer, reprendre et basculer entre les conversations
- Sessions parallèles de bureau : sessions soutenues par worktree dans l’application de bureau