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

  1. Clic droit sur la branche : « Checkout » est grisé avec la mention « Extraite dans un autre worktree ».
  2. 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.

Voir aussi