git worktree
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 pruneOptions
Choisir la bonne option
Changer de tâche
Trois façons
| Commande | Vos modifications | Dossiers |
|---|---|---|
git stash + switch | Mises de côté, puis restaurées | Un |
git commit (WIP) + switch | Dans un commit temporaire | Un |
git worktree add | Intact | Deux |
Exemples
Nouvelle branche dans un nouveau dossier
git worktree add ../hotfix -b hotfixDossier ../hotfix sur une nouvelle branche.
Branche existante
git worktree add ../review feature/loginRelire une branche sans quitter la vôtre.
Lister
git worktree listChaque dossier avec sa branche.
Supprimer
git worktree remove ../hotfixSupprimer le dossier supplémentaire.
Exemples de workflows
git worktree add ../hotfix -b hotfix mainOuvrir main dans un nouveau dossier
cd ../hotfixCorriger, committer, pousser là-bas
git worktree remove ../hotfixFaire 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
Oui : un dépôt, un historique ; seuls les fichiers extraits diffèrent.