<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Git Worktree on Dev TLDRLSS</title>
        <link>https://dev.tldrlss.com/fr/tags/git-worktree/</link>
        <description>Recent content in Git Worktree on Dev TLDRLSS</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>fr</language>
        <lastBuildDate>Sat, 08 Aug 2026 08:29:00 +0800</lastBuildDate><atom:link href="https://dev.tldrlss.com/fr/tags/git-worktree/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Pourquoi utiliser git stash à chaque changement de branche ? Qu&#39;est-ce que Git Worktree ? Différences entre Git Worktree et Git Branch ? Comment créer un flux de développement multithread efficace avec Git Worktree</title>
        <link>https://dev.tldrlss.com/fr/article/2026/08/git-worktrees-branch-guide-multi-thread-workflow/</link>
        <pubDate>Sat, 08 Aug 2026 08:29:00 +0800</pubDate>
        
        <guid>https://dev.tldrlss.com/fr/article/2026/08/git-worktrees-branch-guide-multi-thread-workflow/</guid>
        <description>&lt;img src="https://dev.tldrlss.com/global-assets/images/app/git-1.jpg" alt="Featured image of post Pourquoi utiliser git stash à chaque changement de branche ? Qu&#39;est-ce que Git Worktree ? Différences entre Git Worktree et Git Branch ? Comment créer un flux de développement multithread efficace avec Git Worktree" /&gt;&lt;p&gt;Avez-vous déjà vécu cette situation ? Vous développez une nouvelle fonctionnalité complexe et soudain un Bug urgent apparaît, nécessitant une correction immédiate.&lt;/p&gt;
&lt;p&gt;Pour changer de branche, vous êtes contraint d&amp;rsquo;exécuter à contre-cœur un &lt;code&gt;git stash&lt;/code&gt; pour cacher votre code incomplet. Après avoir corrigé le Bug et être revenu, vous devez exécuter prudemment &lt;code&gt;git stash pop&lt;/code&gt;, risquant parfois le cauchemar des conflits de code (conflict).&lt;/p&gt;
&lt;p&gt;En réalité, &lt;code&gt;Git&lt;/code&gt; propose depuis longtemps un outil extrêmement puissant pour résoudre ce problème : &lt;code&gt;Git Worktree&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Dites adieu aux changements de branche chaotiques et au Stash, et adoptez le développement multithread avec Worktree&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cet article vous explique en détail son fonctionnement interne et son utilisation pratique.&lt;/p&gt;
&lt;h2 id=&#34;quelle-est-la-différence-entre-git-worktree-et-git-branch-&#34;&gt;Quelle est la différence entre Git Worktree et Git Branch ?
&lt;/h2&gt;&lt;p&gt;Pour comprendre &lt;code&gt;Git Worktree&lt;/code&gt;, clarifions d&amp;rsquo;abord sa différence avec &lt;code&gt;Git Branch&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On peut comparer la gestion de versions à la lecture d&amp;rsquo;un livre papier :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Commit&lt;/code&gt; est &lt;strong&gt;l&amp;rsquo;édition / la version du livre&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Branch&lt;/code&gt; est &lt;strong&gt;le marque-page inséré à une page donnée&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Worktree&lt;/code&gt; est &lt;strong&gt;le bureau de travail sur lequel vous ouvrez le livre&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dans l&amp;rsquo;approche traditionnelle, nous ne disposons que d&amp;rsquo;un seul bureau. Chaque fois que nous voulons changer de marque-page, nous devons ranger tous les papiers en cours de modification sur la table ou les cacher dans un tiroir (c&amp;rsquo;est le rôle de &lt;code&gt;git stash&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;En revanche, &lt;code&gt;Git Worktree&lt;/code&gt; vous permet de posséder plusieurs &lt;strong&gt;bureaux de travail indépendants&lt;/strong&gt; en même temps.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Élément de comparaison&lt;/th&gt;
          &lt;th&gt;Git Branch&lt;/th&gt;
          &lt;th&gt;Git Worktree&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Concept de Workspace&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Partage un seul répertoire physique de travail&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Possède plusieurs répertoires physiques de travail indépendants&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Coût du changement de branche&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Nécessite un commit, stash ou sauvegarde&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Sans stash ; il suffit de changer de répertoire&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Isolation &amp;amp; Sécurité&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Les fichiers non commités peuvent causer des conflits ou résidus&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Répertoires totalement isolés ; les modifications n&amp;rsquo;interfèrent pas&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Historique des modifications&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Partage l&amp;rsquo;historique de Commit et les branches Git&lt;/td&gt;
          &lt;td&gt;&lt;strong&gt;Partage l&amp;rsquo;historique de Commit et les branches Git&lt;/strong&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La branche active, la zone de transit (Staging Area) et les modifications non commitées de chaque Worktree sont complètement indépendantes, mais elles &lt;strong&gt;partagent l&amp;rsquo;ensemble de l&amp;rsquo;historique des Commits et des branches&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Branch est le marque-page de version, tandis que Worktree est le bureau de travail physique&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ainsi, lorsque vous devez changer de tâche, il vous suffit d&amp;rsquo;ouvrir un autre dossier sans toucher du tout à votre état de développement actuel.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;comment-commencer-à-utiliser-git-worktree-&#34;&gt;Comment commencer à utiliser Git Worktree ?
&lt;/h2&gt;&lt;p&gt;Lors de l&amp;rsquo;adoption de &lt;code&gt;Git Worktree&lt;/code&gt; dans des projets réels, une bonne organisation des répertoires rend le développement bien plus fluide.&lt;/p&gt;
&lt;p&gt;Il est recommandé de conserver le répertoire du projet initialement cloné avec &lt;code&gt;git clone&lt;/code&gt; comme le quartier général propre &lt;code&gt;main&lt;/code&gt;, et de placer les nouveaux répertoires Worktree à l&amp;rsquo;extérieur du projet (par exemple &lt;code&gt;../my-app-worktrees&lt;/code&gt;), évitant ainsi les erreurs de scan récursif par les outils de développement.&lt;/p&gt;
&lt;p&gt;Le flux de commandes habituel est le suivant :&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Flux&lt;/th&gt;
          &lt;th&gt;Commande&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1. Créer un nouveau Worktree et simultanément une nouvelle branche&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git worktree add ../my-app-worktrees/feature-login -b feature-login&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2. Afficher la liste de tous les Worktrees actifs&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git worktree list&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;Git Worktree&lt;/code&gt; est particulièrement adapté à la gestion des tâches de développement d&amp;rsquo;un &lt;code&gt;AI Agent&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vous pouvez attribuer un répertoire Worktree indépendant à &lt;code&gt;AI Agent&lt;/code&gt; pour qu&amp;rsquo;il modifie et teste le code en toute liberté, tandis que les développeurs humains effectuent la revue de code (Review) et les tests dans un autre Worktree.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Donnez un Worktree indépendant à l&amp;rsquo;AI Agent pour que le développement IA et la revue humaine s&amp;rsquo;exécutent en parallèle&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les deux fonctionnent dans leurs répertoires physiques respectifs, de manière sûre et claire.&lt;/p&gt;
&lt;h2 id=&#34;comment-fusionner-et-nettoyer-en-toute-sécurité-après-le-développement-&#34;&gt;Comment fusionner et nettoyer en toute sécurité après le développement ?
&lt;/h2&gt;&lt;p&gt;Une fois le développement terminé dans un Worktree indépendant, comment fusionner les résultats et faire le nettoyage ?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Gardez un concept important en tête : Le répertoire Worktree lui-même n&amp;rsquo;a pas besoin d&amp;rsquo;être fusionné, &lt;strong&gt;ce qui doit vraiment être fusionné, c&amp;rsquo;est la Branch&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il vous suffit de revenir au répertoire de travail &lt;code&gt;main&lt;/code&gt; et d&amp;rsquo;exécuter &lt;code&gt;git merge&lt;/code&gt; sur la branche de fonctionnalité correspondante pour terminer l&amp;rsquo;intégration.&lt;/p&gt;
&lt;p&gt;Pour le nettoyage, suivez la procédure standard en deux étapes :&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Étape&lt;/th&gt;
          &lt;th&gt;Commande&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1. Supprimer le répertoire physique du Worktree&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git worktree remove ../my-app-worktrees/feature-login&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;2. Supprimer la branche de fonctionnalité terminée&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;git branch -d feature-login&lt;/code&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Supprimez d&amp;rsquo;abord le répertoire Worktree, puis supprimez la Branch&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Veillez à toujours utiliser la commande &lt;code&gt;git worktree remove&lt;/code&gt; pour le nettoyage, au lieu de supprimer manuellement le dossier dans le gestionnaire de fichiers.&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;quels-sont-les-pièges-courants-lors-de-lutilisation-de-git-worktree-&#34;&gt;Quels sont les pièges courants lors de l&amp;rsquo;utilisation de Git Worktree ?
&lt;/h2&gt;&lt;p&gt;Bien que &lt;code&gt;Git Worktree&lt;/code&gt; soit extrêmement pratique, il comporte quelques pièges auxquels il faut prêter attention.&lt;/p&gt;
&lt;h3 id=&#34;piège-1--les-modifications-non-commitées-seront-perdues&#34;&gt;Piège 1 : Les modifications non commitées seront perdues
&lt;/h3&gt;&lt;p&gt;Bien que la suppression d&amp;rsquo;un Worktree ne supprime pas la Branch elle-même, si vous avez encore des modifications non commitées dans ce répertoire, la suppression forcée du répertoire Worktree entraînera la perte définitive de ces modifications.&lt;/p&gt;
&lt;h3 id=&#34;piège-2--conflit-doccupation-de-branche&#34;&gt;Piège 2 : Conflit d&amp;rsquo;occupation de branche
&lt;/h3&gt;&lt;p&gt;Le mécanisme de protection de &lt;code&gt;Git&lt;/code&gt; &lt;strong&gt;n&amp;rsquo;autorise pas le Checkout de la même Branch simultanément dans deux Worktrees différents&lt;/strong&gt;. Si vous essayez de basculer vers une branche déjà occupée dans un second Worktree, &lt;code&gt;Git&lt;/code&gt; bloquera l&amp;rsquo;action et affichera un message d&amp;rsquo;erreur.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Forcer la suppression d&amp;rsquo;un Worktree entraîne la perte des modifications non sauvegardées par Commit&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En maîtrisant ces caractéristiques et principes, vous éviterez facilement ces pièges.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Grâce à &lt;code&gt;Git Worktree&lt;/code&gt;, nous pouvons dire adieu aux changements de branche chaotiques et au processus &lt;code&gt;git stash&lt;/code&gt;, et réaliser un véritable développement multithread.&lt;/p&gt;
&lt;p&gt;La prochaine fois que vous faites face à une correction de Bug urgente, que vous développez plusieurs fonctionnalités en parallèle ou que vous attribuez des tâches de code à un &lt;code&gt;AI Agent&lt;/code&gt;, essayez d&amp;rsquo;ouvrir un nouveau bureau de travail !&lt;/p&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;reference&#34;&gt;Reference
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://git-scm.com/docs/git-worktree&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Git - git-worktree Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
