Par Anonyme (non vérifié) , 29 avril 2026

Le problème que résolvent les worktrees

Vous êtes en pleine feature quand une demande urgente de hotfix arrive. Faire un stash ou changer de contexte est risqué et lent. Les worktrees vous permettent de faire checkout de branches additionnelles dans des répertoires séparés, partageant tous une seule base de données d'objets sous-jacente. Chaque worktree a son propre HEAD, index et arbre de travail.

Ajouter un worktree

git worktree add ../hotfix main
cd ../hotfix
git checkout -b hotfix/urgent
# corriger le bug, push, retour
cd -
git worktree remove ../hotfix

Lister et élaguer

git worktree list
git worktree list --porcelain
git worktree prune
git worktree remove ../old-feature
git worktree lock ../release
git worktree unlock ../release

Worktrees détachés

git worktree add --detach ../v1.0 v1.0.0

Règles de partage de branche

La même branche ne peut pas être checkout dans deux worktrees simultanément, par conception.

Cas d'usage

  • Long build CI dans un worktree pendant que vous continuez à coder.
  • Comparaison côte à côte de deux branches dans votre éditeur.
  • Bisect dans un worktree pendant que votre checkout principal reste en place.
  • Lancer plusieurs versions de langage ou builds de conteneur en parallèle.

Configuration

git config --worktree user.email [email protected]

Activez avec git config extensions.worktreeConfig true.

Erreurs courantes

Supprimer un répertoire de worktree avec rm -rf au lieu de git worktree remove laisse des métadonnées obsolètes.