Mémo Git · Worktrees

Déplacer ou verrouiller un worktree

git worktree move <dossier> <nouveau-dossier> ; git worktree lock <dossier>

git worktree move déplace le dossier d'un worktree en gardant le lien avec le dépôt. git worktree lock le protège de la suppression et du nettoyage, par exemple s'il est sur un disque externe. git worktree unlock lève la protection.

Ce que ça fait

move déplace le dossier en gardant le lien avec le dépôt. lock le protège de la suppression et du nettoyage, par exemple s'il est sur un disque externe ; git worktree unlock lève la protection.

Un cas d'usage

Ton worktree est sur une clé USB souvent débranchée : verrouillé, il ne sera pas nettoyé par erreur.

Attention : Ne déplace pas le dossier à la main : le lien serait rompu. Passe par git worktree move.

En ligne de commande

git worktree move <dossier> <nouveau-dossier>
Déplace le worktree.
git worktree lock --reason "disque externe" <dossier>
Verrouille le worktree, en notant la raison.
git worktree unlock <dossier>
Lève le verrou.
git worktree repair <dossier>
Rétablit le lien après un déplacement fait à la main.

Dans Merathon

  1. Ces opérations se font en ligne de commande : ouvre le panneau du bas (Ctrl+J) puis l'onglet « Terminal ».
  2. Un worktree verrouillé porte la mention « verrouillé » et ne peut pas être supprimé depuis l'application.

Questions fréquentes

Puis-je déplacer le dossier à la main ?

Mieux vaut l'éviter, car le lien serait rompu. Si c'est déjà fait, git worktree repair <dossier> le rétablit depuis le dépôt principal.

Peut-on déplacer le worktree principal ?

Pas avec git worktree move, qui refuse aussi les worktrees contenant des sous-modules.

Voir aussi