git worktree

Espaces de travail et gros projets

Extraire plusieurs branches à la fois dans des dossiers séparés


La commande 'git worktree' donne plusieurs dossiers de travail à un même dépôt. Chaque dossier a une branche différente extraite, avec ses propres fichiers et sa zone de préparation, tandis que l’historique est partagé. C’est l’alternative au stash quand vous devez changer de tâche : ouvrez la branche urgente dans un autre dossier et gardez votre travail en cours intact. Une branche ne peut être extraite que dans un seul dossier à la fois.

Synopsis

git worktree add [-b <new-branch>] <path> [<commit-ish>]
git worktree list
git worktree remove <worktree>
git worktree prune
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Options

Cliquez sur une option pour la déplier

Débutant (3)

Lister tous les dossiers de travail avec leur commit et leur branche.

RecommandéSavoir quelle branche est ouverte où

Exemple

git worktree list

Supprimer un dossier de travail (il ne doit pas avoir de modifications non committées, sauf avec --force).

RecommandéLa façon propre de supprimer un worktree

Exemple

git worktree remove ../hotfix

Oublier les worktrees dont les dossiers ont été supprimés à la main.

Si nécessaireNettoyer après avoir supprimé un dossier à la main

Exemple

git worktree prune

Choisir la bonne option

Changer de tâche

Trois façons

CommandeVos modificationsDossiers
git stash + switchMises de côté, puis restauréesUn
git commit (WIP) + switchDans un commit temporaireUn
git worktree addIntactDeux

Exemples

Nouvelle branche dans un nouveau dossier

git worktree add ../hotfix -b hotfix

Dossier ../hotfix sur une nouvelle branche.


Branche existante

git worktree add ../review feature/login

Relire une branche sans quitter la vôtre.


Lister

git worktree list

Chaque dossier avec sa branche.


Supprimer

git worktree remove ../hotfix

Supprimer le dossier supplémentaire.

Exemples de workflows

1
git worktree add ../hotfix -b hotfix main

Ouvrir main dans un nouveau dossier

2
cd ../hotfix

Corriger, committer, pousser là-bas

3
git worktree remove ../hotfix

Faire le ménage une fois fini

Dépannage

fatal: 'hotfix' is already used by worktree

Cause : Cette branche est extraite dans un autre dossier

Travaillez dans ce dossier, ou retirez d’abord le worktree

Astuces et pièges

Bonnes pratiques

  • ✓Placez les worktrees à côté du dossier principal (../nom), pas dedans.

Erreurs fréquentes

  • ✗Supprimer un dossier de worktree à la main — utilisez git worktree remove (ou prune ensuite).
  • ✗Essayer d’extraire la même branche dans deux dossiers.

FAQ

A:

Oui : un dépôt, un historique ; seuls les fichiers extraits diffèrent.