tech2 min read

Git Worktree pour des PR Reviews paralleles

Un guide pratique et precise pour utiliser git worktree en review de PR, surtout quand on passe d'un workflow git stash a un workflow multi-contextes.

/Updated Mar 12, 2026

J'ai commence comme beaucoup de monde avec git stash. Puis j'ai vu deux agents travailler en parallele sur le meme sujet, et ma curiosite sur git worktree est revenue direct.

Simple git worktree map

Ce que git worktree apporte vraiment

git worktree permet d'avoir plusieurs repertoires de travail pour un meme repository Git.

Ce qui est partage:

  1. l'historique d'objets Git
  2. la plupart des refs du repository

Ce qui est isole par worktree:

  1. HEAD
  2. l'index
  3. les fichiers du repertoire de travail

En pratique, c'est ce qui permet de tester, debugger, reviewer en parallele sans polluer un seul dossier.

Workflow PR review (fiable)

Exemple avec une PR GitHub 142:

git fetch origin pull/142/head:pr-142
git worktree add ../pr-142 pr-142
cd ../pr-142

Version "safe" si tu veux eviter la contrainte de branche deja checkout ailleurs:

git fetch origin pull/142/head
git worktree add --detach ../pr-142 FETCH_HEAD
cd ../pr-142

Dans le dossier ../pr-142, tu peux lancer tes tests, linters, ou meme un agent dedie a la review.

Commandes de maintenance utiles

git worktree list
git worktree remove ../pr-142
git worktree prune

prune est surtout utile si un dossier worktree a ete supprime manuellement hors de Git.

Quand worktree est meilleur que stash

worktree est ideal si:

  1. tu reviews plusieurs PR en meme temps
  2. tu fais tourner plusieurs environnements en parallele
  3. tu compares deux branches cote a cote
  4. tu utilises plusieurs terminaux/agents sur des contextes differents

stash reste tres bien si:

  1. c'est un switch rapide de quelques minutes
  2. tu as juste un petit diff temporaire a mettre de cote

Points d'accuracy importants

  1. Une branche ne peut generalement pas etre checkout dans deux worktrees en meme temps.
  2. git stash est au niveau repository, donc partage entre worktrees.
  3. Si tu supprimes un worktree "a la main" (rm -rf), pense a git worktree prune.

Ressources utiles

  1. git-worktree official docs
  2. git-stash official docs