Mémo Git · Worktrees

Extraire une branche existante dans un worktree

git worktree add <dossier> <branche>

git worktree add <dossier> <branche> extrait une branche locale déjà créée dans un nouveau dossier. Tu restes sur ta branche là où tu es, et tu peux lancer ou relire l'autre à côté.

Ce que ça fait

Extrait une branche locale déjà créée dans un nouveau dossier, sans changer de branche là où tu es.

Un cas d'usage

Un collègue te demande de relire ta branche feature/export pendant que tu travailles sur une autre : tu la lances à côté pour comparer les deux.

En ligne de commande

git worktree add ../site-export feature/export
Extrait feature/export dans ../site-export.
git worktree add --track -b feature/export ../site-export origin/feature/export
Crée la branche locale depuis la branche distante, et l'extrait.
git worktree add --detach ../site-v1 v1.0
Extrait un tag ou un commit, sans branche.

Dans Merathon

  1. Clic droit sur la branche, dans la section « Local » ou le graphe.
  2. Choisis « Extraire dans un nouveau worktree… ».
  3. Valide ou modifie le dossier proposé.

Questions fréquentes

Pourquoi « fatal: 'main' is already used by worktree » ?

Cette branche est déjà extraite dans un autre worktree, et une branche ne peut l'être qu'à un seul endroit. git worktree list indique lequel.

Puis-je extraire une branche distante directement ?

Git attend une branche locale. Si le nom n'existe que sur un seul remote, git worktree add <dossier> <nom> crée la branche locale qui le suit ; sinon, précise-la avec --track -b.

Voir aussi