Mémo Git · Worktrees
Retrouver le worktree d'une branche
git worktree list
Une branche ne peut être extraite que dans un seul worktree à la fois : sinon, un commit dans l'un déplacerait la branche sous les fichiers de l'autre. git worktree list indique où elle se trouve.
Ce que ça fait
Une branche ne peut être extraite que dans un seul worktree à la fois : sinon, un commit dans l'un déplacerait la branche sous les fichiers de l'autre. Ailleurs, elle ne peut donc être ni extraite, ni avancée, ni supprimée.
Un cas d'usage
Le checkout de main est refusé car main est déjà extraite dans ton dossier principal : il suffit d'aller y travailler.
En ligne de commande
git worktree list- Affiche la branche extraite dans chaque dossier.
git worktree list --porcelain- Même liste, dans un format facile à lire par un script.
git -C <dossier> switch <autre-branche>- Libère la branche en changeant de branche dans l'autre worktree.
Dans Merathon
- Clic droit sur la branche : « Checkout » est grisé avec la mention « Extraite dans un autre worktree ».
- Choisis « Ouvrir son worktree » pour y aller.
Questions fréquentes
Pourquoi ma branche ne peut-elle pas être supprimée ?
Elle est extraite dans un worktree. Supprime ce worktree ou change de branche dedans, puis relance la suppression.
Le worktree n'existe plus, mais la branche reste bloquée. Que faire ?
Le dépôt garde sa référence : git worktree prune la retire et libère la branche.