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.
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.
Ce que git worktree apporte vraiment
git worktree permet d'avoir plusieurs repertoires de travail pour un meme repository Git.
Ce qui est partage:
- l'historique d'objets Git
- la plupart des refs du repository
Ce qui est isole par worktree:
HEAD- l'index
- 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:
- tu reviews plusieurs PR en meme temps
- tu fais tourner plusieurs environnements en parallele
- tu compares deux branches cote a cote
- tu utilises plusieurs terminaux/agents sur des contextes differents
stash reste tres bien si:
- c'est un switch rapide de quelques minutes
- tu as juste un petit diff temporaire a mettre de cote
Points d'accuracy importants
- Une branche ne peut generalement pas etre checkout dans deux worktrees en meme temps.
git stashest au niveau repository, donc partage entre worktrees.- Si tu supprimes un worktree "a la main" (
rm -rf), pense agit worktree prune.