Tools & Ecosystem

Tirer parti de git worktree pour paralléliser le travail avec Codex, Claude Code, etc.

Author Photo

Quentin Lerebours

Thumbnail

Depuis deux semaines, je constate l’énorme changement dans la manière de travailler des développeurs. Nous devenons des orchestrateurs guidant les assistants de code comme Codex ou Claude Code qui développent les fonctionnalités et corrigent les bugs du projet.

Si vous n’en avez pas encore été témoins, il est même possible de travailler plusieurs fonctionnalités en parallèle, sur leurs branches respectives, sans avoir à cloner plusieurs fois le projet.

Derrière ce fonctionnement, un outil Git souvent peu connu : git worktree.

Je vais donc détailler le fonctionnement de cette fonctionnalité de git, afin de paralléliser efficacement plusieurs tâches sur le même projet.


1. Comprendre git worktree

Le problème

Dans un dépôt Git traditionnel, on a :

  • les sources dans un dossier de travail : /Users/qlerebours/Projects/traveledmap par exemple.
  • une branche checkout : feat/my-main-feature.
  • le dossier .git qui contient l’historique du projet.

Changer de branche modifiant les fichiers du dossier courant, comment tirer profit des outils comme Codex et Claude Code pour travailler sur plusieurs fonctionnalités en parallèle ?

Une des solutions qu’on va exclure, c’est de cloner le projet dans un deuxième dossier. La raison est simple : Cloner deux fois le projet, c’est avoir deux dossiers .git (ce dossier contenant tout l’historique, il peut être volumineux) et l’objectif de git worktree est justement de remplacer les clones manuels.

Ce que fait git worktree

git worktree permet d’attacher plusieurs dossiers de travail à un même dépôt Git tout en n’ayant un historique commun (.git).

Exemple, lorsque je veux ajouter des validations manquantes sur un formulaire, en parallèle :

git worktree add ../traveledmap-fix-wording fix/add-form-validations

L’état des dossiers après avoir lancé cette commande :

/Users/qlerebours/Projects/traveledmap/              (branche feat/my-main-feature)
/Users/qlerebours/Projects/traveledmap-fix-add-form-validations/      (branche fix/add-form-validations)

et l’état du repository :

  • Un seul dossier .git dans /Users/qlerebours/Projects/traveledmap/
  • Historique partagé
  • Chaque dossier utilise sa branche
  • Fichiers indépendants
  • Commits visibles instantanément dans tous les worktrees

Nous voilà donc avec un setup qui va permettre à notre assistant de code de développer deux fonctionnalités en parallèle.

Comment m’en servir : Use case concret

Scenario

  • Je travaille sur ma fonctionnalité principale sur ma branche feat/my-main-feature
  • Je veux corriger un problème de validations manquantes, remonté par les Product Owners
  • Codex est utilisé pour modifier le wording et ses traductions (même fonctionnement avec Claude Code et autres)

Faire les modifications

  1. Dans Codex, je démarre une nouvelle conversation dans mon projet, et je choisis Worktree et from develop

    • Worktree : Pour pouvoir travailler en parallèle
    • from develop : L’origine de ma nouvelle branche Image
  2. Lorsque j’envoie mon prompt, on peut observer que Codex annonce créer le worktree, ce que je peux valider avec git worktree list Image

  3. Lorsque je vais dans le dossier créé pour le worktree (/Users/qlerebours/.codex/worktrees/c6a5/traveledmap), je constate que les modifications sont faites et prêtes à être testées Image

Tester les modifications

Voici les étapes si vous souhaitez tester les modifications sans les récupérer en local. Sinon, vous pouvez directement passer à la section suivante “Reprendre la main”.

  1. Assurez-vous d’être dans le dossier du worktree
  2. Puisqu’il s’agit d’un nouveau dossier repartant de la branche develop, je dois setup le nécessaire, par exemple :
    • cp .env.example .env
    • pnpm i
  3. Alors, je n’ai plus qu’à lancer le projet avec pnpm run dev pour tester et valider les modifications
  4. Si de nouveaux changements sont nécessaires, Codex les ajoutera à ceux déjà présents, que vous pourrez tester à leur tour.

Reprendre la main

Si vous souhaitez reprendre la main pour faire vous-même les modifications sur le projet, vous avez plusieurs solutions :

  1. Ouvrir le dossier créé par le worktree dans votre éditeur de code préféré et faire les modifications souhaitées.

  2. Utiliser le bouton “Hand off to local” présent en haut à droite de la conversation Codex, qui va permettre de commit les modifications sur une branche, que vous pourrez récupérer en local.

    Image

  3. Utiliser le nouveau bouton “Create a branch” qui permet lui aussi de créer une branche et de la push, si vous souhaitez créer une PR directement par exemple. Quoi qu’il arrive, les options 2 et 3 reviennent au même dans le sens où elles permettent d’envoyer les modifications sur une branche qu’on pourra récupérer en local ou sur Github / Gitlab.

    Image

La documentation complète de cette partie est présente ici pour Codex

Conclusion

Désormais comprendre git worktree, c’est comprendre comment travailler efficacement avec des assistants IA de développement.

J’espère que cet article vous sera utile, l’écrire m’a moi-même permis de comprendre des choses qui m’échappaient. Si vous avez des questions, n’hésitez pas à me contacter par mail ou sur LinkedIn.

#developpement#git#productivite#ia
Author Photo

À propos de Quentin Lerebours

Entrepreneur mais avant tout développeur, j'ai choisi de rester polyvalent afin de travailler avec une vision d'ensemble cohérente des projets. Développement, Commerce, Entrepreneuriat et Gestion de projet font donc partie intégrante de mon quotidien — et si c'était à refaire, je referais pareil !