Par Anonyme (non vérifié) , 29 avril 2026

Le problème que résolvent les worktrees

Vous êtes profond dans une branche feature quand un rapport de bug urgent arrive. Les worktrees vous permettent de checker plusieurs branches simultanément, dans des répertoires différents, partageant le même .git.

Ajouter un worktree

git worktree add ../hotfix-1234 hotfix/login-redirect
git worktree add -b hotfix/login-redirect ../hotfix-1234 main

Lister et gérer

git worktree list
git worktree remove ../hotfix-1234
git worktree prune

Comment ça marche en interne

Le .git dans votre répertoire d'origine est le vrai repo. Chaque worktree additionnel a un fichier .git pointant vers main-repo/.git/worktrees/<name>.

Workflows concrets

Hotfix sans déranger votre travail

git worktree add ../hotfix main
cd ../hotfix
git checkout -b hotfix/cve-fix
cd -
git worktree remove ../hotfix

Comparaison de longue durée

git worktree add ../old v2.4.0
diff -ru ../old/src ./src

Relire le PR d'un collègue localement

gh pr checkout 123 --branch pr-123
git worktree add ../pr-123 pr-123
cd ../pr-123
npm test

CI et worktrees

git worktree add ./build-linux $SHA
git worktree add ./build-windows $SHA

Limitations

  • Vous ne pouvez pas checker la même branche dans deux worktrees.
  • Certains hooks peuvent mal se comporter.
  • Les submodules dans les worktrees peuvent avoir un comportement surprenant.

Alias qui aident

[alias]
    wt = worktree
    wtl = worktree list
    wta = worktree add
    wtr = worktree remove